Heim Web-Frontend HTML-Tutorial Verstehen Sie HTTP, HTTPS, SPDY, HTTP2 auf einmal

Verstehen Sie HTTP, HTTPS, SPDY, HTTP2 auf einmal

Nov 13, 2018 pm 04:20 PM
http https


Der Inhalt dieses Artikels befasst sich mit dem gleichzeitigen Verständnis von HTTP, HTTPS, SPDY und HTTP2. Er hat einen bestimmten Referenzwert und wird von Freunden benötigt Ich hoffe, dass es Ihnen hilfreich sein wird.

Verstehen Sie HTTP, HTTPS, SPDY, HTTP2 auf einmal

Als Veteran der Internet-Kommunikationsprotokolle hat das HTTP-Protokoll heute drei Versionsänderungen durchlaufen. Die neueste Version ist HTTP2.0, mit der meiner Meinung nach jeder vertraut ist. . Heute werde ich Ihnen eine gute Einführung in die Vergangenheit und Gegenwart von HTTP geben.

HTTP/0.9

Die früheste Version von HTTP wurde 1991 geboren. Diese früheste Version ist im Vergleich zu heute extrem einfach, ohne HTTP-Header, ohne Statuscode, und sogar version Es gab keine Nummer, und später wurde die Versionsnummer auf 0,9 gesetzt, um sie von anderen HTTP-Versionen zu unterscheiden. HTTP/0.9 unterstützt nur eine Methode – Get, und die Anfrage hat nur eine Zeile.

GET /hello.html
Die Antwort ist ebenfalls sehr einfach und enthält nur das HTML-Dokument selbst.

<HTML>
Hello world
</HTML>
Nach dem Login kopieren

Wenn die TCP-Verbindung hergestellt ist, gibt der Server eine Zeichenfolge im HTML-Format an den Client zurück. Schließen Sie nach dem Senden die TCP-Verbindung. Da es keine Statuscodes und Fehlercodes gibt, wird bei einem Fehler während der Serververarbeitung nur eine spezielle HTML-Datei mit Problembeschreibungsinformationen zurückgegeben. Dies ist die früheste Version von HTTP/0.9.

HTTP/1.0

1996 wurde die HTTP/1.0-Version veröffentlicht, die den Übertragungsinhalt von HTTP erheblich erweiterte. Neben Text können Sie auch Bilder senden , Videos usw. Dies legte den Grundstein für die Entwicklung des Internets. Im Vergleich zu HTTP/0.9 verfügt HTTP/1.0 hauptsächlich über die folgenden Funktionen:

Anfragen und Antworten unterstützen HTTP-Header, Statuscodes werden hinzugefügt und der Anfang des Antwortobjekts ist eine Antwortstatuszeile

Protokollversionsinformationen müssen zusammen mit der Anfrage gesendet werden, wobei HEAD- und POST-Methoden unterstützt werden

Unterstützt die Übertragung anderer Arten von Inhalten außer HTML-Dateien

Eine typische HTTP/1.0-Anfrage sieht so aus:

GET /hello.html HTTP/1.0
User-Agent:NCSA_Mosaic/2.0(Windows3.1)
200 OK
Date: Tue, 15 Nov 1996 08:12:31 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html
<HTML>
一个包含图片的页面
<img  src="/static/imghw/default1.png"  data-src="/smile.gif"  class="lazy" alt="Verstehen Sie HTTP, HTTPS, SPDY, HTTP2 auf einmal" >
</HTML>
Nach dem Login kopieren

HTTP/1.1


HTTP/1.1 wurde einige Monate nach HTTP/1.0 veröffentlicht. HTTP/1.1 ist eher eine Verbesserung gegenüber HTTP/1.0. In HTTP1.1 gibt es hauptsächlich die folgenden Verbesserungen:

Kann Verbindungen wiederverwenden

Pipeline hinzufügen: HTTP-Pipeline ist eine Technologie, die sendet mehrere HTTP-Anfragen in Stapeln, ohne während der Übertragung auf eine Antwort vom Server zu warten. Der Pipeline-Mechanismus muss über eine dauerhafte Verbindung abgeschlossen werden. Die Batch-Übermittlung von HTTP-Anfragen durch den Browser kann die Ladezeit der Seite erheblich verkürzen, insbesondere wenn die Übertragungsverzögerung (Verzögerung/Latenz) hoch ist. Zu beachten ist, dass nur idempotente Anforderungen die Pipeline verwenden können, z. B. GET- und HEAD-Methoden.

Chunked-Encoding-Übertragung: Diese Codierung überträgt die Entität in Blöcken und gibt die Länge Block für Block an, bis die Länge 0 Blöcke beträgt, was das Ende der Übertragung anzeigt. Dies ist besonders nützlich, wenn die Länge der Entität unbekannt ist (. (z. B. von der Datenbank dynamisch generierte Daten)

Führt weitere Cache-Kontrollmechanismen ein: wie etag, Cache-Control

Führt einen Inhaltsverhandlungsmechanismus ein, einschließlich Sprache, Kodierung, Typ usw., und ermöglicht es dem Client und dem Server, sich auf den am besten geeigneten Inhalt zu einigen, der ausgetauscht wird

Sowohl Anforderungsnachrichten als auch Antwortnachrichten unterstützen das Host-Header-Feld: In HTTP1.0 gilt jeder Server als an eine eindeutige IP-Adresse gebunden Daher übergibt die URL in der Anforderungsnachricht nicht den Hostnamen (Hostname). 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. Daher ist die Einführung des Host-Headers erforderlich.

Neue Methoden OPTIONS, PUT, DELETE, TRACE, CONNECT

Obwohl HTTP/1.1 in vielen Punkten optimiert wurde, kann es als am weitesten verbreitete Protokollversion bereits viele Netzwerke zufriedenstellen. Da Webseiten immer komplexer werden und sich sogar zu eigenständigen Anwendungen entwickeln, weist HTTP/1.1 nach und nach einige Probleme auf:

Bei der Datenübertragung muss die Verbindung jedes Mal neu hergestellt werden, was auf dem mobilen Endgerät der Fall ist besonders unfreundlich

Der Übertragungsinhalt ist reiner Text, der nicht sicher genug ist

Der Header-Inhalt ist zu groß und der Header ändert sich bei jeder Anfrage nicht wesentlich, was zu Verschwendung führt

Keep-Alive für den Service bringt Leistungsdruck zum Ende

Um diese Probleme zu lösen, wurden HTTPS und SPDY ins Leben gerufen.

SPDY

Tatsächlich ist SPDY kein neues Protokoll, sondern eine vor HTTP erstellte Sitzungsschicht.

Von 2010 bis 2015 demonstrierte Google durch die Implementierung eines experimentellen SPDY-Protokolls eine alternative Möglichkeit zum Datenaustausch zwischen Client und Server. Es erfasst den Fokus von Browser- und serverseitigen Entwicklern, indem es steigende Antwortvolumina identifiziert und komplexe Datenübertragungen löst. Das Standardziel beim Start des SPDY-Projekts war:

Seitenladezeit (PLT) um 50 % reduzieren.

Der Autor der Website muss nichts ändern.

Minimieren Sie die Komplexität der Bereitstellung, ohne die Netzwerkinfrastruktur zu ändern.

Arbeiten mit der Open-Source-Community an der Entwicklung dieses neuen Protokolls.

Sammeln Sie reale Leistungsdaten, um zu überprüfen, ob dieses experimentelle Protokoll funktioniert.

Um das Ziel der Verkürzung der Seitenladezeiten zu erreichen, führt SPDY eine neue binäre Framing-Datenschicht ein, um multidirektionale Anfragen und Antworten zu ermöglichen, unnötige Netzwerkverzögerungen zu priorisieren, zu minimieren und zu eliminieren, mit dem Ziel, das zugrunde liegende TCP effizienter zu nutzen Verbindungen.

HTTP/2.0

Im Jahr 2015 kam HTTP/2.0 heraus. Lassen Sie uns zunächst die Eigenschaften von HTTP/2.0 vorstellen:

Verwenden Sie eine binäre Framing-Schicht: Fügen Sie eine binäre Framing-Schicht zwischen der Anwendungsschicht und der Transportschicht hinzu, um die HTTP-Methode zu erreichen, ohne die Semantik von HTTP zu ändern. URI- und Header-Felder durchbrechen die Leistungsbeschränkungen von HTTP1.1, verbessern die Übertragungsleistung und erzielen eine geringe Latenz und einen hohen Durchsatz. Auf der Binärrahmenebene unterteilt HTTP2.0 alle übertragenen Informationen in kleinere Nachrichten und Frames und codiert sie im Binärformat. Die Header-Informationen von HTTP1.x werden in Header-Frames gekapselt, und wir Der Anforderungstext wird in die eingebettet Datenrahmen.

Binäres Framing

Multiplexing: Bei HTTP/1.x wird die Anfrage seriell gesendet, auch wenn die Bandbreite ausreichend ist, die Auslastungsrate der Bandbreite jedoch nicht genug. HTTP/2.0 verwendet eine Multiplexing-Methode, mit der mehrere Anforderungen parallel gesendet werden können, um die Bandbreitenauslastung zu verbessern.

Multiplexing

Datenflusspriorität: Da Anforderungen gleichzeitig gesendet werden können, wenn der Browser auf wichtige CSS- oder JS-Dateien wartet, um das Rendern der Seite abzuschließen, wird der Server Was soll ich tun, wenn ich Konzentriere ich mich auf das Versenden von Bildressourcen? HTTP/2.0 kann einen Prioritätswert für Datenflüsse festlegen. Dieser Prioritätswert bestimmt die unterschiedlichen Prioritätsstrategien, die der Client und der Server zur Verarbeitung verschiedener Flüsse verwenden.

Serverseitiger Push: In HTTP/2.0 kann der Server andere Inhalte als die Anfrage an den Client senden. Wenn beispielsweise eine Seite angefordert wird, pusht der Server das seitenbezogene Logo, CSS und andere Dateien direkt an den Client senden, anstatt mit dem Senden zu warten, bis die Anfrage eintrifft, da der Server davon ausgeht, dass der Client diese Dinge verwenden wird. Dies entspricht dem Zusammenfassen aller Ressourcen in einem HTML-Dokument.

Header-Komprimierung: Verwenden Sie die Header-Tabelle, um zuvor gesendete Schlüssel-Wert-Paare zu verfolgen und zu speichern. Derselbe Inhalt wird nicht in jeder Anfrage und Antwort gesendet.

Das Obige ist eine vollständige Einführung in das gleichzeitige Verständnis von HTTP, HTTPS, SPDY und HTTP2. Wenn Sie mehr über das Html5-Tutorial erfahren möchten, schauen Sie sich bitte die chinesische PHP-Website an.



Das obige ist der detaillierte Inhalt vonVerstehen Sie HTTP, HTTPS, SPDY, HTTP2 auf einmal. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet der http-Statuscode 520? Was bedeutet der http-Statuscode 520? Oct 13, 2023 pm 03:11 PM

Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Was ist der HTTP-Statuscode 403? Was ist der HTTP-Statuscode 403? Oct 07, 2023 pm 02:04 PM

Der HTTP-Statuscode 403 bedeutet, dass der Server die Anfrage des Clients abgelehnt hat. Die Lösung für den HTTP-Statuscode 403 ist: 1. Überprüfen Sie die Authentifizierungsdaten. Wenn der Server eine Authentifizierung erfordert, stellen Sie sicher, dass die richtigen Anmeldedaten angegeben werden. 2. Überprüfen Sie die IP-Adresseinschränkungen Die IP-Adresse des Clients ist eingeschränkt oder nicht auf der Blacklist. Wenn der Statuscode 403 mit den Berechtigungseinstellungen der Datei oder des Verzeichnisses zusammenhängt, stellen Sie sicher, dass der Client über ausreichende Berechtigungen zum Zugriff auf diese Dateien oder Verzeichnisse verfügt. usw.

So verwenden Sie Nginx Proxy Manager, um einen Reverse-Proxy unter dem HTTPS-Protokoll zu implementieren So verwenden Sie Nginx Proxy Manager, um einen Reverse-Proxy unter dem HTTPS-Protokoll zu implementieren Sep 26, 2023 am 08:40 AM

So implementieren Sie mit NginxProxyManager einen Reverse-Proxy unter dem HTTPS-Protokoll. Mit der Popularität des Internets und der Diversifizierung der Anwendungsszenarien sind die Zugriffsmethoden auf Websites und Anwendungen immer komplexer geworden. Um die Effizienz und Sicherheit des Website-Zugriffs zu verbessern, haben viele Websites damit begonnen, Reverse-Proxys zur Bearbeitung von Benutzeranfragen zu verwenden. Der Reverse-Proxy für das HTTPS-Protokoll spielt eine wichtige Rolle beim Schutz der Privatsphäre der Benutzer und der Gewährleistung der Kommunikationssicherheit. In diesem Artikel wird die Verwendung von NginxProxy vorgestellt

Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Feb 18, 2024 pm 08:41 PM

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

So verwenden Sie Nginx Proxy Manager, um einen automatischen Sprung von HTTP zu HTTPS zu implementieren So verwenden Sie Nginx Proxy Manager, um einen automatischen Sprung von HTTP zu HTTPS zu implementieren Sep 26, 2023 am 11:19 AM

So implementieren Sie den automatischen Sprung von HTTP zu HTTPS mit NginxProxyManager Mit der Entwicklung des Internets beginnen immer mehr Websites, das HTTPS-Protokoll zur Verschlüsselung der Datenübertragung zu verwenden, um die Datensicherheit und den Schutz der Privatsphäre der Benutzer zu verbessern. Da das HTTPS-Protokoll die Unterstützung eines SSL-Zertifikats erfordert, ist bei der Bereitstellung des HTTPS-Protokolls eine gewisse technische Unterstützung erforderlich. Nginx ist ein leistungsstarker und häufig verwendeter HTTP-Server und Reverse-Proxy-Server sowie NginxProxy

HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort Dec 26, 2023 am 10:25 AM

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

Schnelle Anwendung: Praktische Entwicklungsfallanalyse des asynchronen HTTP-Downloads mehrerer PHP-Dateien Schnelle Anwendung: Praktische Entwicklungsfallanalyse des asynchronen HTTP-Downloads mehrerer PHP-Dateien Sep 12, 2023 pm 01:15 PM

Schnelle Anwendung: Praktische Entwicklungsfallanalyse von PHP Asynchroner HTTP-Download mehrerer Dateien Mit der Entwicklung des Internets ist die Funktion zum Herunterladen von Dateien zu einem der Grundbedürfnisse vieler Websites und Anwendungen geworden. In Szenarien, in denen mehrere Dateien gleichzeitig heruntergeladen werden müssen, ist die herkömmliche synchrone Download-Methode oft ineffizient und zeitaufwändig. Aus diesem Grund ist die Verwendung von PHP zum asynchronen Herunterladen mehrerer Dateien über HTTP eine zunehmend verbreitete Lösung. In diesem Artikel wird anhand eines tatsächlichen Entwicklungsfalls detailliert analysiert, wie PHP asynchrones HTTP verwendet.

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Oct 09, 2023 pm 09:21 PM

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

See all articles