Detaillierte Erklärung des Unterschieds zwischen HTTP 1.0 und 1.1 und 2.0

HTTP 的 1.0

Frage 1: Kurze Verbindung

http basiert auf dem Tcp-Protokoll, da es sich um eine kurze Verbindung handelt. Jede http; Verbindung und Trennung entspricht dem Drei-Wege-Tcp-Handshake, der Slow-Start-Verbindung und der vierwelligen Trennung. (Dies kann durch Einstellen von Verbindung: Keep-Alive gelöst werden.)

Problem 2: Blockieren

Die Anzahl der vom Client initiierten gleichzeitigen Anforderungen ist festgelegt. Wenn zu viele Anforderungen vorhanden sind, werden sie in die Warteschlange gestellt und blockiert.

HTTP 1.1-Optimierung

Optimierung 1: Lange Verbindung

Ein TCP-Verbindungskanal kann mehrere HTTP-Anforderungen parallel schalten und schließt. Der Server verarbeitet jedoch weiterhin die Reihenfolge der Clientanforderungen. Der Server wird also weiterhin blockiert.

Optimierung 2: Cache-Optimierung

Cache-Verarbeitung In HTTP1.0 werden hauptsächlich If-Modified-Since und Expires im Header als Kriterien für die Caching-Beurteilung verwendet. HTTP1.1 führt weitere Cache-Steuerungsstrategien ein, z. B. Entity-Tag, If-Unmodified-Since, If-Match, If-None-Match und weitere optionale Cache-Header stehen zur Steuerung der Cache-Strategie zur Verfügung.

Optimierung 3: Verwaltung von Fehlerbenachrichtigungen.

In HTTP1.1 wurden 24 Fehlerstatus-Antwortcodes hinzugefügt. Beispiel: 409 (Konflikt) gibt an, dass die angeforderte Ressource mit dem aktuellen Status der Ressource in Konflikt steht. 410 (Gone) gibt an, dass eine Ressource auf dem Server dauerhaft gelöscht wird

Optimierung 4: Neue Anforderungsmethode

PUT: Fordern Sie den Server auf, eine Ressource zu speichern.
DELETE:
Fordern Sie den Server auf, die identifizierte Ressource zu löschen. OPTIONEN: Fordern Sie die Leistung des Servers an oder fragen Sie die Optionen und Anforderungen für die Ressource ab.
TRACE: Fordern Sie den Server auf, die empfangenen Anforderungsinformationen hauptsächlich zum Testen zurückzusenden Oder Diagnose;
CONNECT: Für zukünftige Verwendung reserviert

Optimierung 5: Hostoptimierung

Host-Optimierung hinzugefügt, über verschiedene Hosts kann Service unterstützt werden Eine IP entspricht mehreren virtuellen Host-Hosts.

Optimierung 6: Wiederaufnahme der Upload-Optimierung

Das Feld für den Bereichskopf wird eingeführt, mit dem nur ein bestimmter Teil der Ressource angefordert werden kann, dh der Rückkehrcode lautet 206 (Teilinhalt). Dies erleichtert Entwicklern die freie Auswahl, um Bandbreite und Verbindungen voll auszunutzen.

HTTP2.0-Optimierung

Optimierung 1: Voll gemultiplext

Der Client und der Server können parallel initiieren oder antworten, um die durch die Serialisierung verursachte Blockierung zu vermeiden.

Optimierung 2: Nachrichtenkomprimierung

Mehr Komprimierungsalgorithmen und optimierte Übertragung von wiederholten Feldern wie Cookies

Optimierung 3: Binäres Framing

Binäre Rahmenebene hinzugefügt. Zwischen der http-Schicht und tcp kann der Rahmen am anderen Ende ungeordnet und zusammengesetzt werden.

Optimierung 4: Server-Push

Eine Anfrage an den Kunden, mehrere Antworten

Fordern Sie Beispiele und Analysen an

// 请求
GET / HTTP/1.1

Host:xxx.xxxx.com

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.10) Gecko/2016042316 Firefox/3.0.10

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

If-Modified-Since: Mon, 25 May 2016 03:19:18 GMT


//响应
HTTP/1.1 200 OK

Cache-Control: private, max-age=30

Content-Type: text/html; charset=utf-8

Content-Encoding: gzip

Expires: Mon, 25 May 2016 03:20:33 GMT

Last-Modified: Mon, 25 May 2016 03:20:03 GMT

Vary: Accept-Encoding

Server: Microsoft-IIS/7.0

X-AspNet-Version: 2.0.50727

X-Powered-By: ASP.NET

Date: Mon, 25 May 2016 03:20:02 GMT

Content-Length: 12173

Statuscode Bedeutung

HTTP 1.1-Statuscodes und ihre Bedeutung

Der Statuscode besteht aus drei Ziffern. Die erste Ziffer definiert die Antwortkategorie und es gibt fünf mögliche Werte:

1xx: Hinweisnachricht - Zeigt an, dass die Anforderung empfangen wurde. Setzen Sie die Verarbeitung fort

2xx: Erfolgreich - Zeigt an, dass die Anforderung erfolgreich empfangen, verstanden und akzeptiert wurde

3xx: Um die Anforderung abzuschließen, müssen weitere Umleitungsmaßnahmen ergriffen werden

4xx: Clientfehler - Die Anforderung weist einen Syntaxfehler auf oder die Anforderung kann nicht erfüllt werden

5xx: Serverseitiger Fehler - Der Server konnte eine legitime Anforderung nicht erfüllen

Referenz:
https://www.jianshu.com/p/52d86558ca57
https://www.debugger.wiki/article/html/1565502376358922
https://juejin.im/entry/6844903489596833800
https://blog.csdn.net / zhglance / article / details / 76162176
https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/232

Ich denke du magst

Origin blog.csdn.net/u010321471/article/details/108505738
Empfohlen
Rangfolge