suchen
HeimBackend-EntwicklungPHP-Tutorialcgi php-cgi, die zugrunde liegenden Prinzipien von PHP

1 Konzept:

cgi

cgi (Common Gateway Interface), gemeinsame Gateway-Schnittstelle. Das Protokoll, das bei der Interaktion zwischen Webservern (z. B. Nginx) und Skriptparsern (z. B. PHP-CGI) verwendet wird. Es gibt das Format an, in dem Daten wie die angeforderte URL, der HTTP-Header und die Post-Daten an den Skriptparser übergeben werden sollen, und das Format, in dem der Skriptparser die http-Antwort zurückgeben soll.
fastcgi
fastcgi ist eine aktualisierte Version des CGI-Protokolls. Standard-CGI analysiert für jede Anforderung die Konfigurationsdatei des entsprechenden Skripts (z. B. php.ini), lädt die Konfiguration und Erweiterungen und initialisiert die Ausführungsumgebung. Die Leistung ist sehr schlecht. fastcgi verwendet den Master-Worker-Modus und die Strategie des residenten Speichers, um die Reaktionsgeschwindigkeit zu verbessern.
php-cgi
PHPs Fastcgi-Implementierung und dient auch als PHP-Skriptparser, der für die Ausführung von PHP-Skripten verantwortlich ist; der Nachteil besteht darin, dass die Prozessverwaltung und -planung schlecht ist.
php-fpm

wird zum Verwalten und Planen von PHP-CGI-Prozessen verwendet, ähnlich wie spawn-fcgi

Zwei Prinzipien

Zuerst verstehen Schauen wir uns den Arbeitsablauf von gewöhnlichem CGI an:
Der Webserver empfängt die Benutzeranforderung und sendet die Anforderung an das CGI-Programm. Das CGI-Programm verarbeitet die in der Anforderung übermittelten Parameter entsprechend und gibt dann a aus Standard-HTML-Anweisung und gibt sie an den Webserver zurück und dann an den Client zurück. So funktioniert normales CGI.
Aus dem oben Gesagten geht hervor, dass CGI nichts anderes als dynamische Webseiten erreichen möchte. Das Merkmal dieser Verarbeitungsmethode besteht darin, dass der Webserver jedes Mal, wenn er eine Anfrage erhält, ein separates CGI ausgeben muss Der Vorteil dieser Methode besteht darin, den Webserver von der spezifischen Programmverarbeitung zu trennen und eine klare Struktur und starke Steuerbarkeit zu gewährleisten. Gleichzeitig besteht der Nachteil darin, dass bei hoher Zugriffsnachfrage der CGI-Prozess verzweigt wird Ein großes Problem für den Server. Stellen Sie sich Hunderte gleichzeitiger Anfragen vor, die den Server dazu veranlassen, Hunderte von Prozessen zu verstehen. Aus diesem Grund war CGI schon immer für seine geringe Leistung und seinen hohen Ressourcenverbrauch bekannt.
Wenn es ein Problem gibt, gibt es eine Lösung. Die derzeit beliebte Lösung besteht darin, das Moduldesign zu verwenden. Grundsätzlich verfügt der aktuelle Webserver über einen entsprechenden Modulmechanismus, um seine Funktionen zu erweitern folgt seinen Designspezifikationen. Das entworfene Modul kann in die eigene Prozessverarbeitung des Webservers eingefügt werden, wodurch die Leistung erheblich verbessert wird, z. B. isapi von IIS und dso von Apache. Diese Methode ist jedoch nicht ohne Nachteile. Beispielsweise müssen unterschiedliche Webserver nach unterschiedlichen Standards entwickelt werden, und die Unabhängigkeit des Webservers kann beispielsweise nicht erreicht werden Möglichkeit, damit frei umzugehen; Sobald ein Problem auftritt, wirkt es sich auf das gesamte Web aus Server-Verarbeitungsablauf; das Einfügen des Webserver-Prozesses führt beispielsweise dazu, dass er nicht als Mehrbenutzer-Label ausgeführt werden kann, dass virtuelle Host-Berechtigungen nicht verarbeitet werden können usw.
Glücklicherweise haben wir eine andere Wahl, nämlich fastcgi. Fastcgi ist eine auf der CGI-Architektur basierende Erweiterung. Ihre Kernidee besteht darin, eine intelligente und nachhaltige Mittelschicht zwischen dem Webserver und dem spezifischen CGI-Programm einzurichten, um den Betrieb des CGI-Programms zu verwalten, sodass der Webserver nur Anforderungen senden muss Diese Schicht leitet dann mehrere wiederverwendbare CGI-Programminstanzen ab und verteilt dann Anfragen an diese Instanzen. Dadurch wird einerseits eine wiederholte Verzweigung des Prozesses vermieden Andererseits kann der Kontroll- und Erkennungsmechanismus der mittleren Schicht verwendet werden, um den Betriebsstatus dieser Instanzen zu überwachen, und die Instanzen können entsprechend verschiedenen Bedingungen gegabelt oder recycelt werden, um sowohl Flexibilität als auch Stabilität zu erreichen.

3 Das zugrunde liegende Arbeitsprinzip von PHP

http://blog.csdn.net/21aspnet/article/details/6973405http://www.nowamagic.net/librarys/veda /detail /102/

Das Obige hat cgi php-cgi vorgestellt, die zugrunde liegenden Prinzipien von PHP, einschließlich seiner Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
如何安装、卸载、重置Windows服务器备份如何安装、卸载、重置Windows服务器备份Mar 06, 2024 am 10:37 AM

WindowsServerBackup是WindowsServer操作系统自带的一个功能,旨在帮助用户保护重要数据和系统配置,并为中小型和企业级企业提供完整的备份和恢复解决方案。只有运行Server2022及更高版本的用户才能使用这一功能。在本文中,我们将介绍如何安装、卸载或重置WindowsServerBackup。如何重置Windows服务器备份如果您的服务器备份遇到问题,备份所需时间过长,或无法访问已存储的文件,那么您可以考虑重新设置WindowsServer备份设置。要重置Windows

PHP和CGI的文件上传和下载技术:如何实现文件管理功能PHP和CGI的文件上传和下载技术:如何实现文件管理功能Jul 21, 2023 am 11:19 AM

PHP和CGI的文件上传和下载技术:如何实现文件管理功能简介:文件上传和下载是现代Web应用程序中常见的功能之一。本文将介绍如何使用PHP和CGI编程语言实现文件上传和下载功能,并展示一些代码示例来演示如何管理上传和下载的文件。以下是我们将要涵盖的内容:文件上传的基本概念PHP实现文件上传CGI实现文件上传文件下载的基本概念PHP实现文件下载CGI实现文件下

Windows Server 2025预览版迎来更新,微软改善Insiders测试体验Windows Server 2025预览版迎来更新,微软改善Insiders测试体验Feb 19, 2024 pm 02:36 PM

在发布WindowsServer的build26040版本之际,微软公布了该产品的官方名称:WindowsServer2025。一同推出的,还有Windows11WindowsInsiderCanaryChannel版本的build26040。有些朋友可能还记得,多年前有人成功将WindowsNT从工作站模式转换为服务器模式,显示微软操作系统各版本之间的共性。尽管现在微软的服务器操作系统版本和Windows11之间有明显区别,但关注细节的人可能会好奇:为什么WindowsServer更新了品牌,

如何使用PHP和CGI实现用户注册和登录功能如何使用PHP和CGI实现用户注册和登录功能Jul 21, 2023 pm 02:31 PM

如何使用PHP和CGI实现用户注册和登录功能用户注册和登录是许多网站必备的功能之一。在本文中,我们将介绍如何使用PHP和CGI来实现这两个功能。我们将通过代码示例来演示整个过程。一、用户注册功能的实现用户注册功能允许新用户创建一个账户,并将其信息保存到数据库中。以下是实现用户注册功能的代码示例:创建数据库表首先,我们需要创建一个数据库表,用于存储用户信息。可

怎么修改Nginx版本名称伪装任意web server怎么修改Nginx版本名称伪装任意web serverMay 14, 2023 pm 09:19 PM

如何修改nginx默认的名称,可以稍微的伪装一下,也可以装x一般来说修改3个位置,一个是nginx.h、另一个是ngx_http_header_filter_module.c、还有一个ngx_http_special_response.c。提示:一般修改都是在nginx编译之前修改,修改完了之后需要重新编译代码如下:scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

探究PHP CLI和CGI的工作原理及异同点探究PHP CLI和CGI的工作原理及异同点Mar 11, 2024 pm 12:39 PM

工作原理及异同点在Web开发中,PHP是一种常用的编程语言,它可以通过不同的方式与Web服务器进行交互,其中最常见的是通过PHPCLI(CommandLineInterface)和PHPCGI(CommonGatewayInterface)。本文将探究PHPCLI和CGI的工作原理及异同点,并提供具体的代码示例来说明它们之间的区别。一、PHP

如何使用PHP和CGI实现网站的视频播放功能如何使用PHP和CGI实现网站的视频播放功能Jul 22, 2023 pm 07:45 PM

如何使用PHP和CGI实现网站的视频播放功能在当今多媒体时代,视频已经成为网站内容中不可或缺的一部分。为了提供良好的用户体验,网站需要实现视频播放功能。本文将介绍如何使用PHP和CGI来实现网站的视频播放功能,并提供代码示例供参考。1.准备工作在开始之前,需要确保服务器已经安装了PHP和CGI模块。可以通过运行phpinfo()函数或者在终端中输入"php

微软发布 Windows Server vNext 预览版 25335微软发布 Windows Server vNext 预览版 25335Jan 10, 2024 am 08:49 AM

微软在面向桌面端发布Win11预览版更新的同时,今天还发布了WindowsServer长期服务通道(LTSC)预览版Build25335。微软和以往相同,并未公布完整的更新日志,甚至于没有提供相应的博客文章。微软调整了WindowsServer预览版更新日志,让其和Canary频道版本相同,如果没有引入新的内容,则不放官方博文。IT之家注:Server的品牌尚未更新,在预览版中仍为WindowsServer2022。此外,微软将这些版本称为WindowsServervNext,而不是已经上市的W

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),