In der PHP-Welt sind viele Entwicklungs-Frameworks entstanden, wie z. B. Laravel, ThinkPHP usw., aber unabhängig vom Gesamtframework ist ihre Art der Verarbeitung von Webanfragen dieselbe. In diesem Artikel wird zunächst die grundlegende Architektur der PHP-Entwicklung erläutert Webanwendungen und analysieren Sie dann jeweils den Verarbeitungsfluss von Laravel und ThinkPHP bei der Verarbeitung von Webanfragen.
Grundlegende Architektur der Entwicklung von Webanwendungen mit PHP
Bei der Entwicklung von Webanwendungen mit PHP müssen alle Anfragen auf bestimmte Eintragsdateien verweisen. WebServer ist ein Inhaltsverteiler. Wenn es sich um eine Anforderung für statische Dateien wie CSS, JS usw. handelt, wird WebServer die Datei finden und sie dann an den Browser senden. php, entsprechend der Konfigurationsdatei weiß WebServer, dass es sich nicht um eine statische Datei handelt und muss einen PHP-Parser finden, um sie zu verarbeiten. Dann verarbeitet er einfach die Anfrage und übergibt sie an den PHP-Parser.
WebServer sendet die angeforderte URL, die Daten, den HTTP-Header und andere Informationen gemäß dem CGI-Protokoll an den PHP-Parser. Als Nächstes analysiert der PHP-Parser die Datei php.ini, initialisiert die Ausführungsumgebung und dann Verarbeiten Sie die Anfrage. Geben Sie das verarbeitete Ergebnis in dem von CGI angegebenen Format zurück und beenden Sie den Prozess. Der Webserver gibt die Ergebnisse dann an den Browser zurück. Der gesamte Verarbeitungsprozess ist in der Abbildung oben dargestellt.
FastCGI
Der PHP-Parser hier ist ein Programm, das das CGI-Protokoll implementiert. Jedes Mal, wenn eine Anfrage eingeht, analysiert es die php.ini-Datei und initialisiert die Ausführungsumgebung, was zum führt Leistung des PHP-Parsers niedrig, daher erschien eine verbesserte und aktualisierte Version von CGI, FastCGI. FastCGI ist ein sprachunabhängiges Protokoll, das zur Kommunikation zwischen Programmen (wie PHP, Python, Java) und Webservern (Apache2, Nginx) verwendet wird. Theoretisch können in jeder Sprache geschriebene Programme Webdienste über FastCGI bereitstellen. Sein Merkmal ist, dass es Verarbeitungsprozesse dynamisch den Anforderungen zuweist, um die Effizienz zu verbessern. Die meisten FastCGI-Implementierungen verwalten einen Prozesspool. FastCGI startet zunächst einen Masterprozess, analysiert die Konfigurationsdatei, initialisiert die Ausführungsumgebung und startet dann mehrere Arbeitsprozesse. Wenn eine Anfrage eingeht, leitet der Masterprozess die Anfrage an einen Arbeitsprozess weiter und nimmt dann sofort die nächste Anfrage an. Und wenn nicht genügend Worker-Prozesse vorhanden sind, kann der Master entsprechend der Konfiguration mehrere Worker-Prozesse vorab starten und warten. Wenn zu viele Worker-Prozesse im Leerlauf vorhanden sind, werden diese natürlich automatisch heruntergefahren, wodurch die Leistung verbessert und das System gespart wird Ressourcen. Während des gesamten Prozesses übernimmt FastCGI die Rolle der Verwaltung des CGI-Prozesses.
PHP-FPM
PHP-FPM ist ein Programm, das das FastCGI-Protokoll speziell für PHP implementiert. Es handelt sich eigentlich um einen PHP-FastCGI-Prozessmanager, der für die Verwaltung eines Prozesspools und den Aufruf des PHP-Parsing-Servers verantwortlich ist um Anfragen vom Webserver zu bearbeiten. PHP-FPM kann Änderungen reibungslos in die php.ini-Datei übertragen.
Erstellen Sie eine neue helloworld.php-Datei und schreiben Sie den folgenden Code
<?php echo"helloworld,"; echo"this is my first php script."; echophpinfo(); ?>
Nachdem Sie die PHP-Laufumgebung wie WebServer und PHP-FPM konfiguriert haben, können Sie direkt im Browser auf die Datei zugreifen . Ausgabe.
Webframework basierend auf PHP
PHP Webframework ist ein Tool, das
allgemeine Funktionen der PHP-Entwicklung basierend auf einem bestimmten Modell kapselt, um Entwicklern eine schnelle Entwicklung zu ermöglichen
Zu seinen Hauptaufgaben gehören:
Code-Wiederverwendung: Definieren von Platzierungs- und Laderegeln für Pakete, Klassen und Funktionen. Es wird empfohlen, Composer und seine AutoLoad-Funktion direkt zu integrieren.
Anforderungsverteilungsverwaltung: Hierbei handelt es sich um Routing-Frameworks wie Rewrite.
Konfigurationsdateiverwaltung: Laden und dynamisches Laden von Konfigurationsdaten
Fehler- und Ausnahmeverwaltung: Ausnahmeerfassung, Fehlerprotokollierung und Fehlercodespezifikationen.
Layout- und Vorlagen-Engine: Wie man das Seitenlayout plant, wie man Widgets wiederverwendet, wie man Ajax-Seiten kombiniert, wie man abgelaufene Sitzungen in HTML umleitet, ob man Ablaufheader komprimiert und festlegt .
Datenbank: Wie wird die Skalierbarkeit der Master-Slave-Trennung berücksichtigt?
PHP ist die beste Programmierung Sie ist die weltweit führende Sprache und wird häufig in der Webentwicklung verwendet. Da seine Syntax der von C ähnelt und eine sehr sanfte Lernkurve aufweist, verwenden immer mehr Menschen PHP für die schnelle Entwicklung von Webprodukten. In der PHP-Welt sind viele Entwicklungs-Frameworks wie Laravel, ThinkPHP usw. entstanden, aber unabhängig vom Gesamt-Framework sind ihre Modi zur Verarbeitung von Webanfragen gleich. In diesem Artikel wird zunächst die grundlegende Architektur der PHP-Entwicklung von Webanwendungen erläutert. und analysiert dann den Verarbeitungsablauf von Laravel und ThinkPHP bei der Verarbeitung von Webanfragen.
Grundlegende Architektur für die Entwicklung von Webanwendungen mit PHP
PHP开发Web应用时所以的请求需要指向具体的入口文件。WebServer是一个内容分发者,他接受用户的请求后,如果是请求的是css、js等静态文件,WebServer会找到这个文件,然后发送给浏览器;如果请求的是/index.php,根据配置文件,WebServer知道这个不是静态文件,需要去找PHP解析器来处理,那么他会把这个请求简单处理后交给PHP解析器。
WebServer会依据CGI协议,将请求的Url、数据、Http Header等信息发送给PHP解析器,接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。整个处理过程如上图所示。
FastCGI
这里的PHP解析器就是实现了CGI协议的程序,每次请求到来时他会解析php.ini文件,初始化执行环境,这就导致PHP解析器性能低下,于是就出现了CGI的改良升级版FastCGI。FastCGI是一种语言无关的协议,用来沟通程序(如PHP, Python, Java)和Web服务器(Apache2, Nginx), 理论上任何语言编写的程序都可以通过FastCGI来提供Web服务。它的特点是会在动态分配处理进程给请求,以达到提高效率的目的,大多数FastCGI实现都会维护一个进程池。FastCGI会先启一个master进程,解析配置文件,初始化执行环境,然后再启动多个worker进程。当请求过来时,master进程会这个请求传递给一个worker进程,然后立即接受下一个请求。而且当worker进程不够用时,master可以根据配置预先启动几个worker进程等待;当然空闲worker进程太多时,也会自动关闭,这样就提高了性能,节约了系统资源。整个过程FastCGI扮演着对CGI进程进行管理的角色。
PHP-FPM
PHP-FPM是一个专门针对PHP实现了FastCGI协议的程序,它实际上就是一个PHP FastCGI进程管理器,负责管理一个进程池,调用PHP解析器来处理来自Web服务器的请求。PHP-FPM能够对php.ini文件的修改进行平滑过度。
新建一个helloworld.php文件,写入下列代码
<?php echo"helloworld,"; echo"this is my first php script."; echophpinfo(); ?>
配置好WebServer和PHP-FPM等php运行环境后,在浏览器中访问该文件就可以直接得到输出。
基于PHP的Web框架
PHP Web框架是
基于某模式将PHP开发常用功能封装实现使开发者快速开发的工具
它主要的任务包括:
代码重用:定义包、类、函数的放置和加载规则,建议直接整合Composer及其AutoLoad特性。
请求的分发管理:这个就是路由,Rest风的框架喜欢Rewrite,简单的一点的框架主要通过参数来定位模块和方法所在。
配置文件管理:加载和动态加载配置数据
错误和异常管理:异常捕捉、错误日志记录以及错误码规范。
Layout和模板引擎:如何规划页面布局、widget如何重用、ajax页面如何结合、过期session如何重定向;数据和模板怎么渲染成HTML,是否压缩和设置过期头。
数据库:如何融入控制器;支持什么样的driver;考虑主从分离的扩展性;以及是否使用ORM
相关推荐:
Das obige ist der detaillierte Inhalt vonWie PHP den Web-Anfrageprozess handhabt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PHP -Typ -Eingabeaufforderungen zur Verbesserung der Codequalität und der Lesbarkeit. 1) Tipps zum Skalartyp: Da Php7.0 in den Funktionsparametern wie int, float usw. angegeben werden dürfen. 3) Eingabeaufforderung für Gewerkschaftstyp: Da Php8.0 in Funktionsparametern oder Rückgabetypen angegeben werden dürfen. 4) Nullierstyp Eingabeaufforderung: Ermöglicht die Einbeziehung von Nullwerten und Handlungsfunktionen, die Nullwerte zurückgeben können.

Verwenden Sie in PHP das Klonschlüsselwort, um eine Kopie des Objekts zu erstellen und das Klonierungsverhalten über die \ _ \ _ Clone Magic -Methode anzupassen. 1. Verwenden Sie das Klonschlüsselwort, um eine flache Kopie zu erstellen und die Eigenschaften des Objekts, nicht die Eigenschaften des Objekts zu klonen. 2. Die \ _ \ _ Klonmethode kann verschachtelte Objekte tief kopieren, um flache Kopierprobleme zu vermeiden. 3. achten Sie darauf, dass kreisförmige Referenzen und Leistungsprobleme beim Klonen vermieden werden, und optimieren Sie die Klonierungsvorgänge, um die Effizienz zu verbessern.

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.

Zu den wichtigsten Spielern in HTTP-Cache-Headern gehören Cache-Control, ETAG und Last-modifiziert. 1.Cache-Control wird verwendet, um die Richtlinien zu kontrollieren. Beispiel: Cache-Control: max-ay = 3600, öffentlich. 2. ETAG überprüft Ressourcenänderungen durch eindeutige Identifikatoren, Beispiel: ETAG: "686897696A7C876B7E". 3. Last-modifiziert gibt die letzte Änderungszeit der Ressource an, Beispiel: Last-Modified: Mi, 21okt201507: 28: 00GMT.

In PHP sollten die Funktionen für Passwort_Hash und passwart_verify verwendet werden, um sicheres Passwort -Hashing zu implementieren, und MD5 oder SHA1 sollte nicht verwendet werden. 1) Passwort_hash generiert einen Hash, der Salzwerte enthält, um die Sicherheit zu verbessern. 2) Passwort_Verify prüfen Sie das Passwort und sicherstellen Sie die Sicherheit, indem Sie die Hash -Werte vergleichen. 3) MD5 und SHA1 sind anfällig und fehlen Salzwerte und sind nicht für die Sicherheit der modernen Passwort geeignet.

PHP ist eine serverseitige Skriptsprache, die für dynamische Webentwicklung und serverseitige Anwendungen verwendet wird. 1.PHP ist eine interpretierte Sprache, die keine Zusammenstellung erfordert und für die schnelle Entwicklung geeignet ist. 2. PHP -Code ist in HTML eingebettet, wodurch es einfach ist, Webseiten zu entwickeln. 3. PHP verarbeitet die serverseitige Logik, generiert die HTML-Ausgabe und unterstützt Benutzerinteraktion und Datenverarbeitung. 4. PHP kann mit der Datenbank interagieren, die Einreichung von Prozessformularen und serverseitige Aufgaben ausführen.

PHP hat das Netzwerk in den letzten Jahrzehnten geprägt und wird weiterhin eine wichtige Rolle bei der Webentwicklung spielen. 1) PHP stammt aus dem Jahr 1994 und ist aufgrund seiner Benutzerfreundlichkeit und der nahtlosen Integration in MySQL die erste Wahl für Entwickler. 2) Zu den Kernfunktionen gehört das Generieren dynamischer Inhalte und die Integration in die Datenbank, sodass die Website in Echtzeit aktualisiert und auf personalisierte Weise angezeigt wird. 3) Die breite Anwendung und das Ökosystem von PHP hat seine langfristigen Auswirkungen angetrieben, steht jedoch auch mit Versionsaktualisierungen und Sicherheitsherausforderungen gegenüber. 4) Leistungsverbesserungen in den letzten Jahren, wie die Veröffentlichung von PHP7, ermöglichen es ihm, mit modernen Sprachen zu konkurrieren. 5) In Zukunft muss PHP sich mit neuen Herausforderungen wie Containerisierung und Microservices befassen, aber seine Flexibilität und die aktive Community machen es anpassungsfähig.

Zu den Kernvorteilen von PHP gehören einfacher Lernen, starke Unterstützung für Webentwicklung, reiche Bibliotheken und Rahmenbedingungen, hohe Leistung und Skalierbarkeit, plattformübergreifende Kompatibilität und Kosteneffizienz. 1) leicht zu erlernen und zu bedienen, geeignet für Anfänger; 2) gute Integration in Webserver und unterstützt mehrere Datenbanken. 3) leistungsstarke Frameworks wie Laravel; 4) hohe Leistung kann durch Optimierung erzielt werden; 5) mehrere Betriebssysteme unterstützen; 6) Open Source, um die Entwicklungskosten zu senken.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung