Heim > häufiges Problem > Der Unterschied zwischen http1.0 und 1.1

Der Unterschied zwischen http1.0 und 1.1

(*-*)浩
Freigeben: 2019-10-24 17:30:49
Original
8746 Leute haben es durchsucht

Der Unterschied zwischen http1.0 und 1.1

1. HTTP 1.1 unterstützt PersistentConnection und Request-Pipelining-Verarbeitung

HTTP 1.0 schreibt vor, dass Browser und Server jeweils nur eine kurzlebige Verbindung aufrechterhalten Die Anfrage vom Browser muss eine TCP-Verbindung mit dem Server herstellen. Der Server trennt die TCP-Verbindung sofort, nachdem die Anfrageverarbeitung abgeschlossen ist. Der Server verfolgt nicht jeden Client und zeichnet keine früheren Anfragen auf. (Empfohlenes Lernen: Web-Frontend-Video-Tutorial)

HTTP 1.1 unterstützt standardmäßig eine dauerhafte Verbindung und verwendet mehrere HTTP-Anfragen und -Antworten Mehrere Anfragen und Antworten können gleichzeitig ausgeführt werden (z. B. verfügt HTTP 1.0 über kein Host-Feld

Im 1.0-Konversationsmodus:

1. Verbindung herstellen

2. Anforderungsnachricht senden

3. Antwortnachricht zurücksenden

4. Verbindung schließen

Die Bei einer dauerhaften Verbindung von HTTP 1.1 müssen außerdem neue Anforderungsheader hinzugefügt werden, um dies zu erreichen. Wenn der Wert des Verbindungsanforderungsheaders beispielsweise Keep-Alive ist, benachrichtigt der Client den Server, die Verbindung aufrechtzuerhalten, nachdem er das Ergebnis dieser Anforderung zurückgegeben hat. Verbindung Wenn der Wert des Anforderungsheaders „close“ lautet, benachrichtigt der Client den Server, die Verbindung zu schließen, nachdem er das Ergebnis dieser Anforderung zurückgegeben hat. HTTP 1.1 stellt außerdem Anforderungsheader und Antwortheader bereit, die sich auf Mechanismen wie Authentifizierung, Statusverwaltung und Cache-Caching beziehen.

Durch die Pipelining-Verarbeitung von Anforderungen können mehrere HTTP-Anforderungen und -Antworten über eine TCP-Verbindung übertragen werden, wodurch der Verbrauch und die Verzögerung beim Herstellen und Schließen von Verbindungen reduziert werden. Beispielsweise können mehrere Anfragen und Antworten für eine Webseitendatei mit vielen Bildern über eine einzige Verbindung übertragen werden, die Anfragen und Antworten für jede einzelne Webseitendatei müssen jedoch weiterhin ihre eigenen Verbindungen verwenden. HTTP 1.1 ermöglicht es dem Client auch, die nächste Anfrage zu stellen, ohne auf die Rückgabe des Ergebnisses der vorherigen Anfrage zu warten. Der Server muss jedoch die Antwortergebnisse in der Reihenfolge zurücksenden, in der die Client-Anfrage empfangen wird, um sicherzustellen, dass der Client dies tun kann Unterscheiden Sie den Inhalt jeder Anfrage.

2. HTTP 1.1 fügt Host-Feld hinzu

In HTTP 1.0 wird davon ausgegangen, dass jeder Server an eine eindeutige IP-Adresse, also die URL in der Anfrage, gebunden ist Nachricht Der Hostname wurde nicht übergeben. Mit der Entwicklung der virtuellen Host-Technologie können jedoch mehrere virtuelle Hosts (Multi-Homed-Webserver) auf einem physischen Server vorhanden sein, die sich eine IP-Adresse teilen.

HTTP1.1-Anforderungsnachrichten und Antwortnachrichten sollten das Host-Header-Feld unterstützen. Wenn in der Anforderungsnachricht kein Host-Header-Feld vorhanden ist, wird ein Fehler (400 Bad Request) gemeldet. Darüber hinaus SOLLTE der Server Ressourcenanfragen akzeptieren, die mit absoluten Pfaden gekennzeichnet sind.

3. 100 (Weiter) Status (Bandbreite sparen)

HTTP/1.1 hat einen neuen Statuscode 100 (Weiter) hinzugefügt. Der Client sendet im Voraus eine Anfrage nur mit dem Header-Feld. Wenn der Server die Anfrage aufgrund von Berechtigungen ablehnt, sendet er den Antwortcode 401 (nicht autorisiert) zurück. Wenn der Server die Anfrage empfängt, sendet er den Antwortcode 100 zurück , und der Client kann weiterhin die vollständige Anfrage mit der Entität senden. Die Verwendung des Statuscodes 100 (Fortfahren) ermöglicht es dem Client, den Anforderungsheader zu verwenden, um den Server vor dem Senden des Anforderungsnachrichtentexts zu testen, um festzustellen, ob der Server den Anforderungstext empfangen möchte, und dann zu entscheiden, ob der Anforderungstext gesendet werden soll.

4. Um das oben genannte Problem zu lösen, wurde in HTTP/1.1 eine Chunked-Transfer-Codierung eingeführt. Der Absender teilt die Nachricht in mehrere Datenblöcke beliebiger Größe auf, und jeder Datenblock wird beim Senden an den Block angehängt. Länge und verwenden Sie schließlich einen Block mit der Länge Null als Zeichen für das Ende der Nachricht. Dieser Ansatz ermöglicht es dem Absender, nur ein Fragment der Nachricht zu puffern, wodurch die Überlastung vermieden wird, die durch das Puffern der gesamten Nachricht entsteht.

5. HTTP/1.1 fügt einige neue Cache-Funktionen auf Basis von 1.0 hinzu. Wenn das Alter des zwischengespeicherten Objekts Expire überschreitet, wird es zu einem veralteten Objekt. kommuniziert aber mit dem Quellserver. Führen Sie eine erneute Validierung durch.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen http1.0 und 1.1. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage