Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung von HTTP-Protokollbeispielen
HTTP ist ein Protokoll der Anwendungsschicht, das aus Anfragen und Antworten besteht und ein Standard-Client-Servicemodell ist. HTTP wird normalerweise auf dem TCP-Protokoll und manchmal auf der TLS- oder SSL-Protokollebene übertragen. Heutzutage wird es allgemein als HTTPS bezeichnet. Die Standard-Portnummer für HTTP ist 80 und die Portnummer für HTTPS ist 443.
Der Nachteil ist, dass der Server den Client nicht aktiv pusht
Die Anwendung des SPDY-Protokolls erfordert einen Client-Browser und Server Beide Terminals werden gleichzeitig unterstützt. Optimiert die Kommunikation zwischen dem Browser und dem Server, unterstützt Stream-Multiplexing, priorisiert Anfragen, initiiert proaktiv Anfragen, erzwingt sichere SSL-Übertragung und andere erweiterte Funktionen
4.1.2 Funktionsweise des HTTP-Protokolls
Das Surfen im Internet ist die Hauptanwendung des HTTP-Protokolls.
1 Der Client muss eine Verbindung mit dem Server herstellen und auf einen Hyperlink klicken Die Arbeit beginnt.
2 Nach dem Verbindungsaufbau sendet der Client eine Anfrage an den Server.
3 Nachdem der Server die Anfrage empfangen hat, gibt er die entsprechenden Antwortinformationen aus
4 Der Client empfängt die vom Server zurückgegebenen Informationen und zeigt sie auf dem Display des Benutzers an. Anschließend trennt der Client die Verbindung der Server
Einige Hauptkonzepte im HTTP-Protokoll
1 Anfrage
HTTP-Anfrage besteht aus drei Teilen: Anforderungsheader, Anforderungsheader, Anforderungshauptteil
Anforderungszeile: Methode Anforderungs-URL HTTP-Version CRLF
Methode: Anforderungsmethode (GET, POST, HEAD, PUT, DELETE, TRACE, CONNECT, OPTIONS)
Anforderungs-URL: eine einheitliche Ressourcenkennung
HTTP-Version: die angeforderte HTTP-Protokollversion
CRLF: Wagenrücklauf und Zeilenvorschub
2 Antwort
HTTP-Antwort besteht ebenfalls aus drei Teilen: Statuszeile, Nachrichtenkopf, Antworttext
Statuszeile: HTTP-Versionsstatus -Code Reason-Phrase CRLF
HTTP-Version: HTTP-Protokollversion des Servers
Status-Code: Vom Server zurückgesendeter Antwortstatuscode
Grundsatz: Textbeschreibung des Statuscodes
Der Statuscode besteht aus drei Ziffern und fünf möglichen Werten
1XX: Hinweisinformationen – die Anfrage hat empfangen, Verarbeitung fortsetzen
2XX: Erfolgreich – die Anfrage wurde erfolgreich empfangen, verstanden und akzeptiert
3XX: Umleitung – zum Abschluss müssen weitere Vorgänge durchgeführt werden die Anfrage
4XX: Clientfehler – Die Anfrage hat einen Syntaxfehler oder die Anfrage kann nicht erfüllt werden
5XX: Serverfehler – Der Server konnte a nicht erfüllen legitime Anfrage
Allgemeine Statuscodes und Statusbeschreibungen
200 OK: Die Clientanfrage war erfolgreich
400 schlechte Anfrage: Die Clientanfrage hat einen Syntaxfehler und kann nicht verarbeitet werden. Was der Server versteht
401 Nicht autorisiert: Die Anfrage ist nicht autorisiert, dieser Statuscode muss mit dem WWW Authenticate-Header verwendet werden
403 Verboten: Der Server hat die Anfrage empfangen, sich jedoch geweigert, sie bereitzustellen. Dienst
404 Nicht gefunden: Die angeforderte Ressource existiert nicht, es wurde beispielsweise eine falsche URL eingegeben
500 interner Serverfehler: Auf dem Server ist ein unerwarteter Fehler aufgetreten
503 Server nicht verfügbar: Der Server ist derzeit nicht in der Lage, die Anfrage des Clients zu verarbeiten und kehrt möglicherweise nach einer gewissen Zeit zum Normalzustand zurück
3 Header
HTTP-Nachrichtenheader umfassen normale Header, Anforderungsheader, Antwortheader und Entitätsheader
1 Es gibt einige Headerfelder im Normalbereich Header, die für alle Anforderungs- und Antwortnachrichten verwendet werden, jedoch nicht für die übertragene Entität, sondern nur für die übertragene Nachricht (Cache-Steuerung, Verbindungssteuerung)
2 Der Anforderungsheader ermöglicht die Weitergabe durch den Client zusätzliche Informationen der Anfrage an den Server sowie eigene Informationen des Clients (UA-Header, Accept)
3 Der Antwortheader ermöglicht es dem Server, zusätzliche Antwortinformationen zu übergeben, die nicht in der Statuszeile platziert werden können, sowie Informationen über den Server und Informationen über den nächsten Zugriff auf die durch die Anforderungs-URL (Standort) identifizierte Ressource
4 Der Entity-Header definiert Metainformationen über den Entity-Body und die durch die Anfrage identifizierte Ressource, z. B. ob es einen Entity-Body gibt
Mehrere wichtige Header:
Host Das :header-Feld gibt den Internet-Host und die Portnummer der angeforderten Ressource an und muss den Standort des ursprünglichen Servers oder Gateways der angeforderten URL angeben.
User Agent: kurz UA, der Inhalt enthält die Benutzerinformationen, die die Anfrage gestellt haben. Enthält normalerweise die Informationen des Betrachters, hauptsächlich den Namen der Browserversion und das verwendete Betriebssystem.
Akzeptieren: Teilt dem Server mit, welche Dateiformate akzeptabel sind. Normalerweise ist dieser Wert in allen Browsern ähnlich.
Cookie: Es gibt zwei Arten: Eine wird vom Client mithilfe des Cookie-Headers an den Server gesendet, der mehrere Werte haben kann, und die andere wird vom Server mit dem Header an den Browser gesendet Cookie festlegen. Es kann nur einen Wert geben, Sie müssen Domäne und Pfad angeben
Cache-Steuerung: Geben Sie den Caching-Mechanismus an, gefolgt von der Anfrage und Antwort. Durch das Festlegen der Cache-Steuerung in einer Anforderungs- oder Antwortnachricht wird der Cache-Verarbeitungsprozess in einer anderen Nachricht nicht geändert. Die Cache-Anweisungen umfassen „Kein Cache“, „Kein Speichern“, „Max. Alter“, „Max. Status“, „Keine Transformation“, „Muss erneut validieren“, „Proxy erneut validieren“, „MAX. Alter“
Zusammenfassung der im Header in PHP verwendeten HTTP-Protokollverwendung
Eingehende Analyse von HTTP Protokoll
Einführung und vertieftes Verständnis des HTTP-Protokolls
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von HTTP-Protokollbeispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!