Dies ist eines meiner Lieblingsthemen und dies wäre ein wissensintensiver Artikel. Lesen Sie es also sorgfältig durch.
Domain Sharding
Multiplexing
HINWEIS:-
So übernehmen/ändern Sie das aktuelle Protokoll
Um von HTTP/1 zu HTTP/2 zu wechseln, müssen Sie Ihren Server für die Unterstützung von HTTP/2 konfigurieren.
Die genauen Schritte hängen von der Serversoftware ab, die Sie verwenden. Hier sind allgemeine Schritte für einige gängige Server:
Apache:
Nginx:
Node.js:
-Wenn Sie Node.js verwenden, können Sie das integrierte http2-Modul verwenden, um einen HTTP/2-Server zu erstellen.
HINWEIS:-
Denken Sie daran, dass HTTP/2 in den meisten Browsern HTTPS erfordert, daher müssen Sie auch ein SSL-Zertifikat für Ihren Server einrichten.
Was tun wir aus der Front-End-Perspektive?
Wie die Verbindung zwischen Client und Server zustande kommt
HTTP/1
HTTP/1 arbeitet mit einer einzigen Verbindung pro Anfrage-/Antwortmodell. Das bedeutet, dass für jede Anfrage vom Client an den Server eine separate TCP-Verbindung aufgebaut wird.
Wenn eine Webseite mehrere Ressourcen benötigt (wie Bilder, CSS, JavaScript-Dateien), müssen mehrere TCP-Verbindungen hergestellt werden.
Dies kann zu einem Problem führen, das als „Head-of-Line-Blockierung“ bekannt ist und bei dem das Laden einer Ressource durch das Laden einer vorherigen Ressource blockiert werden kann.
HTTP/1 unterstützt keinen Server-Push, was bedeutet, dass der Server nur Ressourcen senden kann, die der Client angefordert hat.
HTTP/2
HTTP/2 führt Multiplexing ein, das das gleichzeitige Senden mehrerer Anfragen und Antworten über eine einzige TCP-Verbindung ermöglicht. Dadurch wird das Problem der Head-of-Line-Blockierung effektiv beseitigt.
HTTP/2 führt außerdem Server-Push ein, bei dem der Server proaktiv Ressourcen an den Client senden kann, bevor der Client überhaupt danach fragt. Dies kann die Leistung verbessern, indem die Notwendigkeit von Roundtrip-Anfragen zwischen Client und Server reduziert wird.
HTTP/2 unterstützt auch die Header-Komprimierung, was den Overhead reduzieren und die Leistung verbessern kann, insbesondere für mobile Benutzer.
HTTP/2 unterstützt auch Header-Komprimierung
HTTP/2 führt eine neue Funktion namens Header-Komprimierung ein, die den Overhead von HTTP-Headern reduziert.
In HTTP/1 werden Header als Klartext gesendet, was recht umfangreich sein kann und zu einem erheblichen Mehraufwand für jede Anfrage und Antwort führt.
Dies gilt insbesondere für Anfragen, die Cookies oder Token in den Headern enthalten.
HTTP/2 verwendet einen Mechanismus namens HPACK-Komprimierung, um Header zu komprimieren.
HPACK ist ein einfaches und sicheres String-Komprimierungsschema, das die Größe von Headern reduziert und so HTTP/2-Anfragen und -Antworten schneller und effizienter macht.
HPACK-Komprimierung funktioniert intern
Dies geschieht durch die Verwaltung einer Liste zuvor gesendeter Header-Felder sowohl auf der Client- als auch auf der Serverseite, bekannt als dynamische Tabelle.
Wenn ein Header-Feld in nachfolgenden Anfragen oder Antworten wiederholt wird, wird anstelle des gesamten Header-Felds ein Index gesendet, der auf den Eintrag in der dynamischen Tabelle verweist.
Dadurch wird die Größe der Header für Anfragen und Antworten erheblich reduziert, insbesondere wenn viele Header über mehrere Anfragen hinweg wiederholt werden.
HTTP/3
Hier sind einige der Vorteile von HTTP/3 gegenüber HTTP/2:
Verbesserte Geschwindigkeit:
Bessere Handhabung von Paketverlusten:
Verbindungsmigration:
QUIC unterstützt die Verbindungsmigration. Das heißt, wenn ein Benutzer sein Netzwerk ändert (z. B. von WLAN auf 4G wechseln), kann die bestehende Verbindung aufrechterhalten und in das neue Netzwerk migriert werden.
Dies ist mit TCP nicht möglich, da es an die ursprüngliche IP-Adresse gebunden ist.
Standardmäßige Verschlüsselung:
Server-Push:
HINWEIS:-
Es ist wichtig zu beachten, dass HTTP/3 zwar mehrere Vorteile bietet, aber derzeit noch nicht allgemein unterstützt oder verwendet wird.
Referenz:-
Das obige ist der detaillierte Inhalt vonHTTP/s HTTP/s HTTP3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!