Heim > Artikel > Betrieb und Instandhaltung > Detaillierte Erläuterung des HTTP-Protokolls
1. Einführung in das HTTP-Protokoll
Das HTTP-Protokoll (Hypertext Transfer) ist das im Internet am häufigsten verwendete Protokoll . Ein Netzwerkprotokoll, das hauptsächlich für Webdienste verwendet wird und von Computern implementiert wird, die Textinformationen im HTML-Format (Hypertext Markup Language) verarbeiten.
2. HTTP-Protokollversion:
Version 0.9: unterstützt nur HTML-Seiten (wurde entfernt); 1.0:
3. Häufige Webseitentypen:
(1) Einführung des MIME-Mechanismus (Multipurpose Internet Mail Extensions), mit dem Sie Multimedia-Nachrichten senden können;
(2) Einführung des Keep-Alive-Mechanismus zur Unterstützung der Persistent-Link-Funktion (dies ist jedoch das Prinzip). (3) Einführung der Funktion zur Unterstützung zwischengespeicherter Seiten
Version 1.1: Ein Upgrade auf Version 1.0; Unterstützung weiterer Anforderungsverbindungsmodi, Optimierung persistenter Links und Optimierung des Seiten-Cachings;
Version 2.0: Bietet semantisch optimierte HTTP-Übertragung und fügt eine SPDY-Technologie hinzu. Spdy-Technologie: Eine von Google eingeführte Technologie, die die HTTP-Dateninteraktion beschleunigen kann, insbesondere die Verwendung des SSL-Beschleunigungsmechanismus. Sie wird allgemein als https-Protokoll bezeichnet Internet ist derzeit die HTTP2.0-Version.
Statische Seite: Gemeinsame Suffixe Der Name ist:
Text: html, htm, txt, css, doc;
Video: mp4, flv;
Anfragevorgang, wie im Bild gezeigt:
①Der Web-Client registriert den Socket beim Kernel.
③Der Webserver empfängt die Anforderungsinformationen des Clients ;
④Wenn die vom Client angeforderte Ressource lokal auf dem Server ist, fordert der http-Dienst einen Aufruf vom Systemkernel an
⑤Der Kernel ruft die Daten auf der lokalen Festplatte auf und sendet sie Daten an den Server;
⑥http sendet die vom Benutzer angeforderte Ressource über die Antwortnachricht und antwortet schließlich an den Client
Funktionen: Sie werden vom Entwickler vorab geschrieben und gespeichert Das aktuelle Dateisystem ist schnell und die Seitenpflege ist mühsam, die Dateninteraktivität ist schlecht und kann von Suchmaschinen leicht aufgenommen werden.
Gemeinsame Suffixe sind: php, jsp , asp, net...Anfrageprozess:
Der Unterschied zu statischen Seiten besteht darin, dass der http-Server dies tut, wenn der Benutzer dynamische Inhalte anfordert Rufen Sie den Back-End-Interpreter auf, und der Back-End-Interpreter ruft die Daten von der Festplatte ab und führt sie durch den Interpreter, um eine Datei im HTML-Format zu generieren. Anschließend wird es in eine Antwortnachricht umgewandelt und antwortet schließlich auf die Anfrage des Clients.
Merkmale: Der Webserver selbst unterstützt die Verarbeitung dynamischer Seiten nicht, und zur Vervollständigung ist ein spezieller Interpreter erforderlich. Die Seitendaten sind änderbar, die Seitenwartung ist relativ einfach, die Reaktionsgeschwindigkeit ist langsam und die Daten sind interaktiv , und beim Zugriff auf die Seite Enthält Sonderzeichen? , %, & (spezielle Symbole) können von Suchmaschinen nicht eingebunden werden;
Pseudostatische Seite
: Dynamische Seiten als statische Seiten tarnen und von Suchmaschinen eingebunden werden, was Hardwareressourcen verbraucht4. HTTP-Protokollnachricht:
Anfragenachricht: Client → Server von Der Client sendet eine Anfrage an den Server , und verschiedene Websites werden verwendet, um unterschiedliche Ressourcen (HTML-Dokumente) anzufordern.
Anforderungsnachrichtenformat:
Anforderungszeile:
wird verwendet um die vom Client angeforderte Ressource, die verwendete Anforderungsmethode, die angeforderte Ressource und das angeforderte Protokoll zu identifizieren. Sie werden direkt durch „Leerzeichen“ getrennt:Die Funktion ist um den Server über den vom Client angeforderten relevanten Inhalt zu informieren (es kann mehr als einen Header geben)
Leere Zeile:Nach dem Anforderungsheader wird eine Leerzeile angezeigt, indem Sie a senden Wagenrücklaufzeichen und Zeilenvorschubzeichen, die verwendet werden, um dem Server mitzuteilen, dass die Anforderungsheaderinformationen nicht mehr im folgenden Inhalt angezeigt werden
Anfordernde Entität: Was ist der spezifische Inhalt der angeforderten? Seite
Antwortnachricht: Server → ClientDer Server antwortet auf die Anfrage des Clients;
Antwortnachrichtenformat:Startzeile: Die Version des in der Antwort verwendeten http-Protokolls, der Antwortstatuscode und die kurzen Informationen des Statuscodes;
Antwort-Header: Ähnlich wie bei einer Anfragenachricht gibt es nach der Startzeile in der Regel mehrere Header-Felder. Jedes Header-Feld enthält einen Namen und einen Wert, getrennt durch Doppelpunkte, und kann einen oder mehrere enthalten.
Leere Zeile: Nach den letzten Antwort-Header-Informationen befindet sich eine Leerzeile. Durch das Senden von Wagenrücklauf- und Zeilenvorschubzeichen wird dem Client mitgeteilt, dass sich unter der leeren Zeile keine Header-Informationen befinden ;
Antwortentität: Wirklich auf den auf der Seite enthaltenen Inhalt zugreifen
5. HTTP-Anfragemethode
Im HTTP-Kommunikationsprozess enthält jede HTTP-Anforderungsnachricht eine HTTP-Anforderungsmethode, mit der der Client angewiesen wird, den Server aufzufordern, bestimmte spezifische Vorgänge auszuführen.
Gemeinsame HTTP-Anfragemethoden: GET, POST, HEAD
6. HTTP-Statuscode
Statuscode-Übersicht:
Allgemeine Statuscode-Beschreibung:
Wenn der obige Statuscode Wenn der entsprechende Informationen wurden nicht gefunden, siehe Details zum HTTP-Statuscode
7. HTTP-Dinge
umfassen ein HTTP Die Anfrage und die Antwort auf die entsprechende Anfrage werden als HTTP-Transaktion bezeichnet. Es kann auch verstanden werden, dass eine HTTP-Transaktion ein vollständiger Prozess aus HTTP-Anfrage und HTTP-Antwort ist.
Standardmäßig öffnet und schließt das HTTP-Protokoll für jede Transaktion eine neue Verbindung, was aufgrund der langsamen Startfunktion von TCP die Leistung jeder neuen Verbindung selbst beeinträchtigt wird reduziert, sodass die Obergrenze für die Anzahl der parallelen Verbindungen, die geöffnet werden können, begrenzt ist. Daher ist die Verwendung des dauerhaften Verbindungsmodus besser als die standardmäßige Verwendung des dauerhaften Verbindungsmodus. Der Vorteil besteht darin, dass der Zeitaufwand für den Anforderungsprozess und die TCP-Trennung reduziert wird.
8. HTTP-Ressourcen
Die Ressource ermöglicht es Benutzern, Nachrichten über den Browser oder den Benutzeragenten über das HTTP-Protokoll zu senden und Inhalte wie HTML-Dokumente, Bilder usw. abrufen.
Ressourcentyp: getaggt über MIME; Format: Haupt-Tag und dieses Tag;
Gemeinsame MIME-Typen:
9. URL-EinführungURL, der vollständige Name lautet Uniform Resource Location, die chinesische Übersetzung lautet Uniform Resource Locator, auch bekannt als Webseitenadresse (Website) . Wie eine Hausnummer ist es die standardmäßige eindeutige Adresse einer Ressource im Internet. Laienhaft ausgedrückt ist URL eine Zeichenfolge zur Beschreibung von Informationsressourcen im Internet und wird hauptsächlich in verschiedenen WWW-Client- und Serverprogrammen verwendet. URLs können ein einheitliches Format verwenden, um verschiedene Informationsressourcen zu beschreiben, einschließlich Dateien, Serveradressen und Verzeichnisse usw. Genau genommen handelt es sich bei jeder URL um einen URI, der eine Internetressource identifiziert und eine Methode angibt, mit der sie arbeitet oder die Ressource abruft.
Das Format der URL besteht aus den folgenden drei Teilen: Der erste Teil ist das Protokoll, zum Beispiel: http. Der zweite Teil ist die IP-Adresse oder der Domänenname (Portnummer) des Host-Ressourcenservers, zum Beispiel: www.kgc.cnDer dritte Teil ist die spezifische Adresse der Host-Ressource. wie Verzeichnis- und Dateiname usw., zum Beispiel: teacher/index.htmlDer erste Teil und der zweite Teil werden durch das Symbol „://“ getrennt, der zweite Teil und der dritte Teil sind es durch das Symbol „/“ getrennt. Der erste und zweite Teil sind unverzichtbar und der dritte Teil kann weggelassen werden 10. URI-EinführungURI (Uniform Resource Identifier) Es wird auf Chinesisch als Ressourcenkennung bezeichnet. Es handelt sich um eine Zeichenfolge, die zur Identifizierung des Namens einer bestimmten Internetressource verwendet wird. Diese Identifizierung ermöglicht Benutzern die Interaktion mit der Ressource über ein bestimmtes Protokoll. Jede im Web verfügbare Ressource, einschließlich HTML-Dokumente, Bilder, Videoclips, Programme usw., wird durch eine universelle Ressourcenkennung lokalisiert. Wir können also den URI verwenden, um den Namen jeder Ressource zu identifizieren.
11 Wie verbindet HTTP mehrere Anforderungen gleichzeitig? Unter dem Blockierungsmodell wird standardmäßig jeweils nur eine Anfrage empfangen. Nachdem die Anfrage verarbeitet wurde, wird die nächste Anfrage empfangen, sodass sie nur einzeln empfangen werden kann.Wir möchten also gleichzeitig auf Benutzeranfragen reagieren, was ein Multiprozessmodell erfordert. Der Webserver selbst generiert mehrere untergeordnete Prozesse, um auf Benutzeranfragen zu reagieren. Das heißt, wenn eine Benutzeranfrage an den Webserver gesendet wird, antwortet der Hauptwebprozess nicht direkt auf die Benutzeranfrage, sondern generiert einen untergeordneten Prozess um auf die Benutzeranfrage zu reagieren, wenn der untergeordnete Prozess eine Verbindung mit diesem Benutzer herstellt. Der Hauptprozess des Webs wartet auf die Anfrage eines anderen Benutzers. Wenn die zweite Benutzeranfrage eingeht, wird ein untergeordneter Prozess generiert, der auf die zweite Benutzeranfrage antwortet. Und so weiter. Daher wird jede Benutzeranfrage von einem untergeordneten Prozess bearbeitet.
CDN-Computerraum: Der CDN-Computerraum dient zum Speichern statischer Ressourcen
Wenn ein Benutzer Daten anfordern möchte, sendet er eine Anfrage an den Webserver und antwortet dann Wenn Hunderte Millionen Menschen auf der ganzen Welt den Back-End-Server anfordern, kann der Back-End-Server damit nicht umgehen und die Zugriffsgeschwindigkeit wird sehr langsam sein. Dies wird die Geburt eines solchen sein Eine Sache wie CDN, CDN Der Inhalt der Seite wird gespeichert. Wenn der Client auf eine Seite zugreift, besucht er zunächst den CDN-Computerraum. Wenn der CDN-Computerraum keinen Cache hat, kehrt er zur Quelle zurück Anschließend wird eine Kopie für das CDN zwischengespeichert und beim nächsten Besuch dem Client präsentiert. Es ist nicht erforderlich, zur Quelle zurückzukehren. Der Zugriff kann direkt auf dem CDN erfolgen, wodurch der Druck auf den Back-End-Server verringert wird.
Tutorials zu verwandten Artikeln: Web-Sicherheits-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des HTTP-Protokolls. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!