SPDY ist ein von Google entwickeltes Anwendungsschichtprotokoll, das auf dem Transmission Control Protocol (TCP) basiert. Das Entwicklungsteam fördert SPDY als formellen Standard (jetzt ein Internetentwurf). SPDY Das Protokoll soll die Ladezeiten von Webseiten verbessern und die Sicherheit durch Komprimierung, Multiplexierung und Priorisierung verbessern. (SPDY ist der Spitzname von Speedy, was schneller bedeutet)
Die Beziehung zwischen SPDY und HTTP
Das SPDY-Protokoll ist nur effizienter als HTTP in Bezug auf die Leistung Es wurden viele Optimierungen vorgenommen. Die Kernidee besteht darin, die Anzahl der Verbindungen so weit wie möglich zu reduzieren, die Semantik von HTTP wurde jedoch nicht wesentlich geändert. Insbesondere SPDY Es verwendet HTTP-Methoden und -Header, löscht jedoch einige Header und schreibt die Teile von HTTP neu, die Verbindungen und Datenübertragungsformate verwalten, sodass es grundsätzlich mit HTTP kompatibel ist.
Google gab im SPDY-Whitepaper an, dass es unter den Protokollstapel vordringen und das Transport Layer Protocol (TCP) ersetzen würde, da dies derzeit jedoch sehr schwierig bereitzustellen und zu implementieren sei Google plant, zunächst das Anwendungsschichtprotokoll HTTP zu verbessern und zunächst eine Sitzungsschicht über SSL hinzuzufügen, um das SPDY-Protokoll zu implementieren, während die GET- und POST-Nachrichtenformate von HTTP unverändert bleiben, d. h. alle vorhandenen Serveranwendungen müssen dies nicht sein geändert.
Der Zweck von SPDY besteht derzeit darin, HTTP zu stärken und eine bessere Implementierung und Unterstützung für HTTP bereitzustellen. Ob SPDY in Zukunft durch eine Zibetkatze für einen Prinzen ersetzt wird, nachdem es weit verbreitet ist. Es ist Googles Aufgabe, HTTP und das gesamte Internet zu revolutionieren.
Warum müssen Sie einen SPDY neu erstellen?
Es ist mehr als zehn Jahre her, dass Tim Berners-Lee, der Vater des World Wide Web, HTTP erfand und förderte, um es heute zum beliebtesten Protokoll im Internet zu machen (das aktuelle). Auch die HTTP 1.1-Spezifikation stagniert seit 13 Jahren Mit der rasanten Entwicklung der WEB-Technologie, insbesondere der kontinuierlichen Weiterentwicklung von HTML5, einschließlich der Entstehung des WebSockets-Protokolls und Änderungen in der aktuellen Netzwerkumgebung sowie Änderungen im Übertragungsinhalt, war die ursprüngliche HTTP-Spezifikation nach und nach nicht mehr in der Lage, die HTTP-Anforderungen der Menschen zu erfüllen Weiterentwicklung, damit HTTPbis funktioniert. Es wurde eine Gruppe gebildet und autorisiert, über HTTP 2.0 nachzudenken, in der Hoffnung, viele der derzeit durch HTTP auferlegten Einschränkungen zu beseitigen. SPDY ist ein Protokoll, das von Google eingeführt wurde, als HTTP kurz vor dem Übergang von 1.1 auf 2.0 stand, um die nächste Generation der Internetkommunikation zu werden. Es wurde lange Zeit als die einzig praktikable Option für HTTP 2.0 angesehen.
Mängel des HTTP-Protokolls
1. Ineffiziente einseitige Verbindungsanforderung
HTTP-Protokoll Der größte Nachteil besteht darin, dass jede TCP-Verbindung nur einer HTTP-Anfrage entsprechen kann, dh jede HTTP-Verbindung fordert nur eine Ressource an und der Browser kann dieses Problem nur durch den Aufbau mehrerer Verbindungen lösen. Zusätzlich Anfragen in HTTP erfolgen strikt nach dem First-In-First-Out-Prinzip (FIFO). Wenn die Verarbeitung einer Anfrage in der Mitte lange dauert, werden nachfolgende Anfragen blockiert.
(Hinweis: Obwohl HTTP-Pipelining die Verbindungsanforderungen verbessert hat, hat die Komplexität stark zugenommen und ist nicht populär geworden)
2 Ermöglicht vom Client initiierte Anfragen
Der Server kann nur darauf warten, dass der Client eine Anfrage sendet, was im Hinblick auf die aktuelle Situation des Vorladens eine Fessel darstellt.
3. HTTP-Header-Redundanz
HTTP-Header wird wiederholt in derselben Sitzung gesendet, mit redundanten Informationen in der Mitte, wie z. B. Benutzer - Informationen wie Agent und Host, die nicht wiederholt gesendet werden müssen, werden auch wiederholt gesendet, was Bandbreite und Ressourcen verschwendet.
Vorteile des SPDY-Protokolls
1. Multiplexing-Anforderungsoptimierung
SPDY-Vorschriften Es kann sein unbegrenzte parallele Anfragen innerhalb einer SPDY-Verbindung, wodurch mehrere gleichzeitige HTTP-Anfragen eine TCP-Sitzung gemeinsam nutzen können. Auf diese Weise wird SPDY in einem einzigen TCP gemultiplext Mehrere Anfragen an die Verbindung, anstatt für jede Anfrage eine separate Verbindung zu öffnen, sodass nur eine TCP-Verbindung hergestellt werden kann, um alle Ressourcen auf der Webseite zu übertragen, was nicht nur die Umlaufzeit für die Nachrichteninteraktion reduziert, sondern auch vermeidet Verzögerung durch das Erstellen einer neuen Verbindung. Machen Sie TCP effizienter.
Darüber hinaus kann das Multiplexing von SPDY im Gegensatz zu herkömmlichem HTTP, das Anfragen strikt einzeln nach dem First-In-First-Out-Prinzip verarbeitet, selektiv CSS zuerst übertragen Diese wichtigeren Ressourcen übertragen dann weniger wichtige Ressourcen wie Website-Symbole, wodurch das Problem der Belegung von Netzwerkkanälen durch unkritische Ressourcen vermieden und verbessert werden kann TCP-Leistung.
2. Unterstützung der Server-Push-Technologie
Der Server kann aktiv die Kommunikation mit dem Client initiieren und Daten an den Client übertragen Halten Sie stets ein schnelles Netzwerk bereit.
3. SPDY komprimiert den HTTP-Header
und verwirft unnötige Header-Informationen. Dadurch können Kosten für die redundante Datenübertragung eingespart werden mit Latenz und Bandbreite.
4. Erzwingen Sie die Verwendung des SSL-Übertragungsprotokolls
Google ist davon überzeugt, dass die zukünftige Entwicklungsrichtung des Webs sichere Netzwerkverbindungen sein müssen, und Alle Anfragen müssen SSL-verschlüsselt sein, die Informationsübertragung ist sicherer.
Die Bedeutung des SPDY-Protokolls
Laut Google wurde SPDY ausschließlich zu dem Zweck entwickelt, das Web schneller zu machen (das Streben danach, das gesamte Web schnell zu machen), und sein Name ist auch der Name SPDY (Speedy) scheint dies ebenfalls anzudeuten. Welche Bedeutung hat SPDY?
1. Normale Benutzer:
Für Benutzer gibt es keinen Unterschied zwischen SPDY, das unter dem Browser versteckt ist, und HTTP, aber wir können das spüren Google-Dienste sind unter Chrome extrem schnell Der Dank geht an SPDY. Darüber hinaus besteht nach der Verschlüsselung der Website-Informationsübertragung kein Grund zur Sorge, dass Informationen usw. abgefangen werden könnten, was die Sicherheit und Vertraulichkeit erheblich erhöht.
2. Front-End-Personal:
Für Front-End-Ingenieure ist die Verbesserung der Seiteneffizienz eine sehr wichtige Sache, und die meisten von ihnen Derzeit werden Methoden wie CSS-Sprites verwendet, um die Website für jedes Bild und jedes Symbol beim Laden der Seite zu optimieren. Sie alle fordern eine Verbindung an und verweisen sogar auf verschiedene Bilder auf verschiedenen Seiten, um die Anzahl der Bildanfragen auf einer Seite zu reduzieren. Mit der Anforderungsoptimierung von SPDY kann nun die Reihenfolge der Anforderungen neu angeordnet werden, wodurch die Auswirkungen von Bildanforderungen beim Laden der Seite weitgehend abgemildert werden können. Wenn es beispielsweise zu viele registrierte Benutzer auf der Registrierungsseite von Geek Park gibt, wie z. B. der Innovationskonferenz 2012 von Geek Park oder der 27. Great Wall-Konferenz von Geek Park, ist deutlich zu spüren, dass sich die Nachfrage nach Avataren verlangsamt Ich glaube, dass diejenigen, die oft zu Taobao oder Weibo gehen, ein tiefes Verständnis dafür haben. Sobald die Internetgeschwindigkeit etwas langsamer ist, werden auch Produkte wie die von Apple auftreten App Store (ausgenommen regional bedingte Serververzögerungen). Anwendungssymbole auf Anwendungsverteilungsplattformen wie Doujia werden langsam aktualisiert, wie im Video unten gezeigt.
3. Betriebs- und Wartungspersonal:
SPDY reduziert nicht nur die Anzahl der Verbindungen, sondern reduziert auch die von jedem Client belegten Ressourcen der Server reduziert, wodurch mehr Speicher und CPU frei werden. Darüber hinaus kann SPDY zusammen die Browsing-Geschwindigkeit verdoppeln und die Latenz beim Laden von Seiten um bis zu verbessern 64 %.
Das weithin unterstützte SPDY-Protokoll
Wenn Sie den Chrome-Browser und Google-Netzwerkdienste wie Gmail verwenden, haben Sie tatsächlich keinen Zugriff mehr diese Dienste über HTTP. Im Browser öffnen chrome://net-internals/#spdy wird feststellen, dass Sie bereits das SPDY-Protokoll verwenden. (Neben Googles eigenem Gmail, Google Plus und anderen Google-Diensten unterstützen auch andere öffentliche Websites wie Twitter und Webtide dieses Protokoll. In China hat Wandoujia 2.0 auf Basis von WebKit außerdem angekündigt, die SPDY-Technologie von Chrome einzuführen, um weitere Verbesserungen vorzunehmen Geschwindigkeit.
Die Implementierung von SPDY erfordert Unterstützung sowohl vom Browser-Client als auch vom Webserver. Selbstverständlich unterstützen alle Client-Browser wie Googles eigener Chrome und Chromium SPDY . ; Mozillas Firefox unterstützt seit Firefox 13 standardmäßig auch SPDY. Die Verwendung von SPDY durch Amazons Silk ist eigentlich nicht schlechter als die von Googles eigenem Chrome und Firefox.
In Bezug auf Webserver umfassen sie die beliebtesten und am weitesten verbreiteten Apache-, Netty-, Jeety-, Varnish-, Erlang- und Hightide-Anwendungsserver und für Node.js-Server haben auch Unterstützung für SPDY angekündigt. (Nginx sagte auch, dass es SPDY unterstützen wird)
Wie wird SPDY bereitgestellt?
Kürzlich hat Google das Plug-in mod_spdy für den beliebtesten Webserver Apache offiziell veröffentlicht. Nach dem Herunterladen und Installieren kann Ihr Apache-Server es verwenden. Das SPDY-Protokoll kommuniziert mit Browsern, die mit dem SPDY-Protokoll kompatibel sind, wie Chrome, Firefox usw. Wie bereits erwähnt, läuft SPDY über HTTPS und der Nicht-HTTPS-Verkehr wird von mod_spdy nicht beeinflusst.
SPDY-Bereitstellungsanforderungen:
1. Apache 2.2 (≥2.2.4)
2. Aktivieren Sie das mod_ssl-Modul
SPDY-Bereitstellungsschritte:
1. Laden Sie das mod_spdy-Modul herunter
Gehen Sie zur Download-SeiteLaden Sie das Installationspaket für das entsprechende System herunter
2. Installieren Sie den mod_spdy Modul
Führen Sie die folgende Befehlszeile im Systemterminal aus
dpkg -i mod-spdy-*.deb
apt-get -f install
-Das System ist Debian/Ubuntu
------- --------- ----------------------------------------- ---------
yum install at (falls Sie „at“ nicht bereits installiert haben)
rpm - U mod-spdy-*.rpm
-Das System ist CentOS/Fedora
3. Starten Sie den Server (Apache) neu
sudo /etc/init.d/apache2 restart (Debian/Ubuntu)
4. Bestätigen Sie, ob es aktiviert ist oder nicht
Öffnen Sie den Chrome-Browser, geben Sie ein und gehen Sie zur Seite chrome://net-internals/#spdy. Überprüfen Sie, ob der Hostname in der Kennungsleiste angezeigt wird. Wenn es angezeigt wird, bedeutet dies, dass die Bereitstellung abgeschlossen ist. Wenn es nicht angezeigt wird, überprüfen Sie das Serverfehlerprotokoll (error.log).
Das Obige stellt das SPDY-Protokoll von Nginx vor, einschließlich seiner Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.