HTTP/2
Internationaler Standard | RFC 7540 |
---|---|
Entwickelt von | Ietf |
Eingeführt | 14. Mai 2015 |
Webseite | https://http2.github.io/ |
Http/2 (ursprünglich genannt Http/2.0) ist eine wichtige Überarbeitung der Http Netzwerkprotokoll von der verwendet Weltweites Netz. Es wurde vom früheren Versuch abgeleitet Spdy Protokoll, ursprünglich entwickelt von Google.[1][2] HTTP/2 wurde von der HTTP -Arbeitsgruppe (auch als HTTPBIS bezeichnet, wobei "Bis" "zweimal" bedeutet) der Internettechnik-Arbeitsgruppe (IETF).[3][4][5] HTTP/2 ist die erste neue Version von HTTP seit HTTP/1.1, die in standardisiert wurde RFC 2068 1997. Die Arbeitsgruppe präsentierte HTTP/2 dem Internet -Engineering -Lenkungsgruppe (IESG) zur Prüfung als vorgeschlagener Standard im Dezember 2014,[6][7] und IESG genehmigte es, am 17. Februar 2015 als vorgeschlagener Standard zu veröffentlichen (und wurde im Februar 2020 in Bezug auf aktualisiert TLS 1.3).[8][9] Die HTTP/2 -Spezifikation wurde als veröffentlicht als RFC 7540 am 14. Mai 2015.[10]
Der Standardisierungsaufwand wurde von unterstützt von Chrom, Oper, Feuerfuchs,[11] Internet Explorer 11, Safari, Amazonaseide, und Rand Browser.[12] Die meisten großen Browser hatte HTTP/2 -Unterstützung hinzugefügt bis Ende 2015.[13] Etwa 97% der verwendeten Webbrowser haben die Fähigkeit.[14] Ab Oktober 2021[aktualisieren], 47% (nach einem Platz von etwas mehr als 50%) der Top 10 Millionen Websites unterstützten HTTP/2.[15]
Sein Nachfolger ist Http/3, eine wichtige Überarbeitung, die auf den von HTTP/2 festgelegten Konzepten aufbaut.[2][16][17][18]
Ziele
Die Arbeitsgruppe Charta erwähnt mehrere Ziele und Probleme mit der Besorgnis:[4]
- Erstellen Sie einen Verhandlungsmechanismus, mit dem Clients und Server HTTP/1.1, 2.0 oder möglicherweise andere Nicht-HTTP-Protokolle verwenden können.
- Halten Sie die Kompatibilität auf hoher Ebene mit HTTP/1.1 bei (z. B. mit Methoden, Statuscodes, URISund die meisten Headerfelder).
- Verringerung Latenz um die Seitenlastgeschwindigkeit in der Seitenverkleidung zu verbessern Internetbrowser unter Berücksichtigung von:
- Datenkompression von HTTP -Header
- HTTP/2 Server -Druck
- Priorisierung von Anfragen
- Multiplexing Mehrere Anfragen über eine einzige TCP Verbindung (reparieren Sie die Zeilenblockierung Problem in HTTP 1.x)
- Unterstützen Sie gängige vorhandene Anwendungsfälle von HTTP wie Desktop -Webbrowser, mobile Webbrowser, Web -APIs, Webserver auf verschiedenen Maßstäben, Proxy -Server, Reverse Proxy Server, Firewalls, und Inhaltsbereitstellungen.
Unterschiede zu HTTP/1.1
Die vorgeschlagenen Änderungen erfordern keine Änderungen an der Funktionsweise vorhandener Webanwendungen. Neue Anwendungen können jedoch neue Funktionen für eine höhere Geschwindigkeit nutzen.[19] HTTP/2 verlässt alle hochrangigen HTTP/1.1-Semantik, wie z. Methoden, Statuscodes, Headerfelder, und URIS, das Gleiche. Neu ist, wie die Daten zwischen dem Client und dem Server gerahmt und transportiert werden.[19]
Websites, die effizient sind, minimieren die Anzahl der Anforderungen Minimieren (Reduzieren Sie die Menge an Code und das Packen kleinerer Code in Bündel, ohne die Funktionsfähigkeit zu reduzieren) Ressourcen wie Bilder und Skripte. Die Minifikation ist jedoch nicht unbedingt bequem oder effizient und erfordern möglicherweise weiterhin separate HTTP -Verbindungen, um die Seite und die Minimierressourcen zu erhalten. Mit HTTP/2 können der Server den Inhalt "überschreiten", dh mit Daten für mehr Abfragen als der angeforderte Client "antworten". Auf diese Weise kann der Server Daten angeben, dass ein Webbrowser eine Webseite rendern muss, ohne auf den Browser zu warten, um die erste Antwort zu untersuchen, und ohne den Aufwand eines zusätzlichen Anforderungszyklus.[20]
Zusätzliche Leistungsverbesserungen im ersten Entwurf von HTTP/2 (die eine Kopie von SPDY war) stammt aus Multiplexing von Anfragen und Antworten, um einige der zu vermeiden Zeilenblockierung Problem in HTTP 1 (auch wenn HTTP -Pipelining wird verwendet), Header Kompressionund Priorisierung von Anfragen.[21] Da HTTP/2 jedoch auf einer einzelnen TCP-Verbindung läuft, besteht immer noch das Potenzial, dass die Blockierung des Kopfes auftritt, wenn TCP-Pakete bei der Übertragung verloren gehen oder verzögert werden.[22] HTTP/2 unterstützt nicht mehr HTTP/1.1's Chunked Transfer -Codierung Der Mechanismus, der seine eigenen, effizienteren Mechanismen für das Datenstroming bietet.[23]
Geschichte
Genesis in und später Unterschiede zu SPDY
Spdy (ausgesprochen wie "Speedy") war ein früheres HTTP-Replacement-Protokoll, das von einem Forschungsprojekt entwickelt wurde, das von angeführt wurde Google.[24] SPDY konzentriert sich hauptsächlich auf die Reduzierung der Latenz und verwendet das gleiche TCP -Rohr, jedoch unterschiedliche Protokolle, um diese Reduktion zu erreichen. Zu den grundlegenden Änderungen an HTTP/1.1, um SPDY zu erstellen, gehörten: "True Request Pipelining ohne FIFO-Einschränkungen, Messemechanismus zur Nachrichtenrahmenmechanismus zur Vereinfachung der Kunden- und Serverentwicklung, obligatorische Komprimierung (einschließlich Header), vorrangiger Planung und sogar bidirektionaler Kommunikation."[25]
Die HTTP -Arbeitsgruppe betrachtete das SPDY -Protokoll von Google. Microsoft's HTTP -Geschwindigkeit+Mobilität Vorschlag (SPDY basiert),[24] und netzwerkfreundliches HTTP-Upgrade.[26] Im Juli 2012, Facebook Bereitstellung von Feedback zu den einzelnen Vorschlägen und empfohlene HTTP/2 basiert auf SPDY.[27] Der erste Entwurf von HTTP/2 wurde im November 2012 veröffentlicht und basiert auf einer geraden Kopie von SPDY.[28]
Der größte Unterschied zwischen HTTP/1.1 und SPDY bestand darin, dass jeder Benutzeraktion in SPDY eine "Stream -ID" erhält, was bedeutet, dass ein einzelner TCP -Kanal vorhanden ist, der den Benutzer mit dem Server verbindet. SPDY teilen Anforderungen entweder in Kontroll- oder Daten mit einem "einfachen Binärprotokoll mit zwei Arten von Frames".[25][29] SPDY zeigte eine offensichtliche Verbesserung gegenüber HTTP, wobei eine neue Seitenlastgeschwindigkeit zwischen 11% und 47% lag.[30]
Die Entwicklung von HTTP/2 verwendete SPDY als Ausgangspunkt. Unter den vielen detaillierten Unterschieden zwischen den Protokollen ist das bemerkenswerteste, dass HTTP/2 eine feste Verwendung verwendet Huffman -Code-basierten Header-Komprimierungsalgorithmus anstelle der dynamischen Stream-basierten Komprimierung von SPDY. Dies hilft, das Potenzial zu verringern Komprimierung Orakelangriffe auf dem Protokoll, wie das VERBRECHEN Attacke.[29]
Am 9. Februar 2015 kündigte Google Pläne an, die Unterstützung für SPDY in Chrome zugunsten der Unterstützung für HTTP/2 zu entfernen.[31] Das war wirksam, beginnend mit Chrome 51.[32][33]
Entwicklungsmeilensteine
Datum | Meilenstein[4] |
---|---|
20. Dezember 2007[34][35] | Erster HTTP/1.1 Revision Internet Draft |
23. Januar 2008[36] | Erste HTTP -Sicherheitseigenschaften Internet Draft |
Anfang 2012[37] | Rufen Sie Vorschläge für HTTP 2.0 an |
14. Oktober - 25. November 2012[38][39] | Arbeitsgruppe Letzter Anruf für HTTP/1.1 Revision |
28. November 2012[40][41] | Erster WG-Entwurf von HTTP 2.0, basierend auf Draft-Mbelshe-httpbis-spdy-00 |
Gehalten/beseitigt | Arbeitsgruppe Letzter Anruf für HTTP -Sicherheitseigenschaften |
September 2013[42][43] | Senden Sie HTTP/1.1 Revision an IESG zur Prüfung als vorgeschlagener Standard |
12. Februar 2014[44] | IESG genehmigte HTTP/1.1 Revision zur Veröffentlichung als vorgeschlagener Standard |
6. Juni 2014[34][45] | Veröffentlichen Sie HTTP/1.1 Revision als RFC 7230, 7231, 7232, 7233, 7234, 7235 |
1. August 2014 - 1. September 2014[7][46] | Arbeitsgruppe Letzter Anruf für HTTP/2 |
16. Dezember 2014[6] | Senden Sie HTTP/2 an IESG zur Prüfung als vorgeschlagener Standard |
31. Dezember 2014 - 14. Januar 2015[47] | Ietf Letzter Anruf für HTTP/2 |
22. Januar 2015[48] | IESG Telechat zur Überprüfung von HTTP/2 als vorgeschlagener Standard |
17. Februar 2015[8] | IESG genehmigt HTTP/2, um als vorgeschlagener Standard zu veröffentlichen |
14. Mai 2015[49] | Veröffentlichen HTTP/2 als RFC 7540 |
Februar 2020 | RFC 8740: Http/2 mit TLS 1.3 |
Verschlüsselung
HTTP/2 ist beide für HTTP -URIs definiert (d. H. Ohne TLS Verschlüsselung, eine Konfiguration, die in abgekürzte Inkrise H2C) und für HTTPS -URIs (über TLS verwendet Alpn Verlängerung[50] wo TLS 1.2 oder neuer ist erforderlich, eine Konfiguration, die abgekürzt wird in H2).
Obwohl der Standard selbst keine Verschlüsselungsverbrauch erfordert,[51] Alle wichtigen Client -Implementierungen (Firefox,[52] Chrome, Safari, Opera, IE, Edge) haben angegeben, dass sie nur HTTP/2 über TLS unterstützen, was die Verschlüsselung macht de facto obligatorisch.[53]
Kritik
Entwicklungsprozess
Das Freebsd und Lack Entwickler Poul-Henning Kamp behauptet, dass der Standard auf unrealistisch kurzer Zeitplan erstellt wurde und jede Grundlage für das neue HTTP/2 -andere als das SPDY -Protokoll ausschließt und zu anderen fehlenden Verbesserungsmöglichkeiten führt. Kamp kritisiert das Protokoll selbst als inkonsistent und unnötig, überwältigend Komplexität. Er gibt auch an, dass das Protokoll gegen das verletzt ProtokollschichtprinzipZum Beispiel durch Duplikation der Flusskontrolle, die in die Transportschicht (TCP) gehört. Er schlug auch vor, dass das neue Protokoll entfernen sollte HTTP -KekseEinführung einer brechenden Veränderung.[54]
Verschlüsselung
Anfangs einige Mitglieder[wer?] der Arbeitsgruppe versuchte, eine Verschlüsselungsanforderung im Protokoll einzuführen. Dies konfrontierte Kritik.
Kritiker gaben an, dass die Verschlüsselung nicht zu vernachlässigbare Computerkosten enthält und dass viele HTTP-Anwendungen tatsächlich keine Verschlüsselung benötigen und ihre Anbieter keine Lust haben, zusätzliche Ressourcen dafür auszugeben. Verschlüsselungsvertreter haben festgestellt, dass dieser Verschlüsselungsaufwand in der Praxis vernachlässigbar ist.[55] Poul-Henning Kamp hat das IETF dafür kritisiert, dass er den SPDY -Prototyp von Google aufgrund politischer Überlegungen als HTTP/2 -Prototyp standardisiert hat.[54][56][57] Die Kritik an der Tagesordnung der obligatorischen Verschlüsselung innerhalb des vorhandenen Zertifikatsrahmens ist weder neu, noch für Mitglieder der Open-Source-Community-a Cisco Der Mitarbeiter erklärte 2013, dass das vorliegende Zertifikatmodell nicht mit kleinen Geräten wie Routern kompatibel ist, da für das vorliegende Modell nicht nur die jährliche Registrierung und Remission von nicht trivialen Gebühren für jedes Zertifikat erforderlich ist, sondern auch jährlich ständig wiederholt werden muss.[58] Die Arbeitsgruppe erzielte endlich keinen Konsens über die obligatorische Verschlüsselung,[51] Obwohl die meisten Client -Implementierungen dies benötigen, was die Verschlüsselung a de facto Erfordernis.
Das HTTP/2 -Protokoll wurde auch kritisiert, weil er nicht unterstützt wurde opportunistische Verschlüsselung, eine Maßnahme gegen Passive Überwachung Ähnlich dem Starttls -Mechanismus, der seit langem in anderen Internetprotokollen verfügbar ist SMTP. Kritiker haben erklärt, dass der HTTP/2 -Vorschlag gegen die eigenen IETF verstößt RFC 7258 "Die allgegenwärtige Überwachung ist ein Angriff", der auch einen Status von hat Beste aktuelle Praxis 188.[59] RFC7258/BCP188 Mandate, dass die passive Überwachung als Angriff betrachtet wird, und von IETF entwickelte Protokolle sollten Maßnahmen zum Schutz vor der passiven Überwachung ergreifen (z. B. durch die Verwendung einer opportunistischen Verschlüsselung). Eine Reihe von Spezifikationen für die opportunistische Verschlüsselung von HTTP/2 wurde bereitgestellt,[60][61][62] von denen der Entwurf der Notingham-http2-Verschlüsselung als offizieller Arbeitselement der Arbeitsgruppe verabschiedet wurde, was zur Veröffentlichung von führte RFC 8164 Im Mai 2017.
TCP-Zeilenblockierung
Obwohl das Design von HTTP/2 die HTTP-Transaktionsebene effektiv adressiert Zeilenblockierung Problem Mit mehreren gleichzeitigen HTTP-Transaktionen werden alle diese Transaktionen über eine einzelne TCP-Verbindung multiplexiert, was bedeutet, dass auf jede Blockierung des TCP-Streams auf Paketebene gleichzeitig alle Transaktionen blockiert, die über diese Verbindung zugegriffen werden. Diese Blockierung des Kopfes in HTTP/2 wird jetzt allgemein als Designfehler und viel dahinter angesehen Quic und Http/3 wurde gewidmet, um Blockierungsprobleme zu reduzieren.[63][64]
Server-Seite-Unterstützung
Serversoftware
- Apache 2.4.12 unterstützt HTTP/2 über das Modul mod_h2.[65] Obwohl geeignete Patches auf den Quellcode des Servers angewendet werden müssen, um dieses Modul zu unterstützen. Ab Apache 2.4.17 sind alle Patches im Haupt -Apache -Quellbaum enthalten, obwohl das Modul selbst in mod_http2 umbenannt wurde.[66] Alte Versionen von SPDY wurden über den Modul mod_spdy unterstützt.[67] Die Entwicklung des Modulmoduls mod_spdy hat jedoch gestoppt.[68]
- Apache tomcat Unterstützt HTTP/2 mit Version 8.5 und neuer mit einer Konfigurationsänderung.[69]
- Apache Traffic Server Unterstützt HTTP/2.[70]
- Caddie Unterstützt HTTP/2.[71]
- Charles Proxy Unterstützt HTTP/2 seit Version Charles 4.[72]
- Citrix NetScaler 11.x unterstützt HTTP/2.[73]
- Sucuri Unterstützt HTTP/2.[74]
- F5 Big-IP Local Traffic Manager 11.6 unterstützt HTTP/2.[75]
- Barracuda -Netzwerke WAF (Web Application Firewall) unterstützt HTTP/2.[76]
- H2O wurde von Grund auf für HTTP/2 -Unterstützung gebaut.[77]
- Haproxy 1.8 unterstützt HTTP/2.[78]
- Steg 9.3 unterstützt HTTP/2.[79]
- LightTpd 1.4.56 unterstützt HTTP/2.[80]
- Leenspeed Web Server 5.0 unterstützt HTTP/2.[81]
- Microsoft IIS Unterstützt HTTP/2 in Windows 10,[82] Windows Server 2016, und Windows Server 2019.
- Netty 4.1 unterstützt HTTP/2.[83]
- nginx 1.9.5 Unterstützt HTTP/2,[84] Veröffentlicht am 22. September 2015 unter Verwendung des Moduls ngx_http_v2_module und HTTP/2 Server -Druck Seit Version 1.13.9 am 20. Februar 2018.[85]
- Node.js Stabile Unterstützung seit 8.13.0.[86] (5.0 unterstützt HTTP/2 mit einem Modul[87] und Knoten 8.4 führte die experimentelle integrierte Unterstützung für HTTP/2 ein.[88])
- Kestrel Web Server Für ASP.NET Core unterstützt HTTP/2 da .NET Core 2.2.0-Preview 1.[89]
- OpenLiteSpeed 1.3.11 und 1.4.8 unterstützt HTTP/2.[90]
- Proxygen Unterstützt HTTP/2.
- Pulse Secure Virtual Traffic Manager 10.2 unterstützt HTTP/2.[91]
- Radware Alteon Ng unterstützt HTTP/2.[92]
- Shimmercat Unterstützt HTTP/2.[93]
- Vert.x 3.3 unterstützt HTTP/2.
- Kette (Haskell Webserver, standardmäßig verwendet in Yesod) Unterstützt HTTP/2.
- Wildfly 9 Unterstützt HTTP/2.
- Gesandter Proxy Unterstützt HTTP/2.
Inhaltsbereitstellungen
- Akamai war der erste große CDN, der HTTP/2 unterstützte und HTTP/2 Server -Druck.
- Microsoft Azure Unterstützt HTTP/2.
- PAGECDN unterstützt HTTP/2 außerhalb der Box und bietet eine Benutzeroberfläche zum Einrichten von HTTP/2-Server-Druck in CDN-Dashboard.[94]
- CDN77 unterstützt HTTP/2 mit Nginx (20. August 2015).
- Wolkenflare Unterstützt HTTP/2 mit Nginx mit SPDY als Fallback für Browser ohne Unterstützung und bei der Pflege aller Sicherheits- und Leistungsdienste.[95] CloudFlare war das erste große CDN, das es unterstützte HTTP/2 Server -Druck.[96]
- AWS Cloudfront Unterstützt HTTP/2[97] Seit 7. September 2016.
- Schnell Unterstützt HTTP/2 einschließlich Server -Push.[98]
- Imperva Incapsula CDN Unterstützt HTTP/2.[99] Die Implementierung umfasst auch die Unterstützung für WAF- und DDOS -Minderungsfunktionen.
- KeyCDN unterstützt HTTP/2 unter Verwendung von Nginx (6. Oktober 2015). HTTP/2 -Test ist eine Testseite, um zu überprüfen, ob Ihr Server HTTP/2 unterstützt.
- Voxility unterstützt HTTP/2 seit Juli 2016 mit NGINX. Die Implementierung unterstützt die Cloud -DDOS -Minderungsdienste.[100]
- Stackpath Unterstützt HTTP/2.
Implementierungen
- Andere Implementierungen werden auf dem gesammelt Github http/2 Wiki.
Siehe auch
- GRPC
- HTTP -Pipelining
- Http Anfrage und Antwort Mitteilungen
- Http/3
- Quic
- Spdy
- Websocket
- Webserver
- Webbrowser
- Vergleich der Webbrowser § Protokollunterstützung
Verweise
- ^ Bright, Peter (18. Februar 2015). "HTTP/2 ist fertig und kam innerhalb von Wochen zum Browser". ARS Technica.
- ^ a b Cimpanu, Catalin. ". ZDNET. Abgerufen 19. November, 2018.
- ^ Thomson, M. (Hrsg.), Belshe M. und R. Peon. "Hypertext Transfer Protocol Version 2: Draft-ITF-HTTPBIS-HTTP2-16". ietf.org. HTTPBIS -Arbeitsgruppe. Abgerufen 11. Februar, 2015.
- ^ a b c "Hypertext Transfer Protocol Bis (httpbis)". Internettechnik-Arbeitsgruppe. 2012.
- ^ "IETF HTTP Arbeitsgruppe". IETF HTTP Arbeitsgruppe. Abgerufen 15. Dezember, 2019.
- ^ a b "Geschichte für den Entwurf-ITF-HTTPBIS-HTTP2-16". Ietf. Abgerufen 3. Januar, 2015.
2014-12-16 IESG-Staat geändert in die Veröffentlichung angefordert
- ^ a b Raymor, Brian (6. August 2014). "Warten Sie darauf - HTTP/2 beginnt die Arbeitsgruppe zuletzt!". Microsoft Open Technologies. Archiviert von das Original am 6. Oktober 2014. Abgerufen 17. Oktober, 2018.
- ^ a b Die IESG (17. Februar 2015). "Protokollaktion: 'Hypertext Transfer Protocol Version 2' zu vorgeschlagenem Standard (Draft-ITF-Httpbis-http2-17.txt)". httpbis (Mailingliste). Abgerufen 18. Februar, 2015.
- ^ Mark Nottingham (18. Februar 2015). "Http/2 genehmigt". ietf.org. Internettechnik-Arbeitsgruppe. Abgerufen 8. März, 2015.
- ^ "RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)". Ietf. Mai 2015. Abgerufen 14. Mai, 2015.
- ^ "Sehen Sie, was neu in Firefox ist!". www.mozilla.org. Mozilla Foundation. Februar 2015.
- ^ "Kann der Aufstieg von SPDY HTTP bedrohen?". blog.restlet.com. Restlet, Inc. Oktober 2011. archiviert von das Original am 6. Januar 2014. Abgerufen 23. Juli, 2012.
- ^ "HTTP2 -Browser -Unterstützung". Abgerufen 9. März, 2017.
- ^ "Kann ich ... Supporttabellen für HTML5, CSS3 usw. verwenden". caniuse.com. Abgerufen 4. März, 2021.
- ^ "Verwendung von HTTP/2 für Websites". Umfragen der World Wide Web Technology. W3techs. Abgerufen 14. Oktober, 2021.
- ^ Bishop, Mike (9. Juli 2019). "Hypertext Transfer Protocol Version 3 (http/3)". Tools.ietf.org. Abgerufen 31. Juli, 2019.
- ^ "Kann ich ... Supporttabellen für HTML5, CSS3 usw. verwenden". caniuse.com. Abgerufen 19. Januar, 2020.
- ^ Cimpanu, Catalin (26. September 2019). "CloudFlare, Google Chrome und Firefox fügen HTTP/3 -Unterstützung hinzu". ZDNET. Abgerufen 27. September 2019.
- ^ a b Ilya Grigorik. "Kapitel 12: http 2.0". Hochleistungs -Browser -Netzwerk. O'Reilly Media, Inc.
HTTP/2 ändert die Anwendungssemantik von HTTP in keiner Weise
- ^ Pratt, Michael. "Apiux". apiux.com. Abgerufen 19. März, 2014.
- ^ Dio Synodinos (November 2012). "HTTP 2.0 Erster Entwurf veröffentlicht". Infoq.com. C4Media Inc.
- ^ Javier Garza (Oktober 2017). "Wie löst HTTP/2 den Kopf der Linienblockierung (HOL) Ausgabe".
- ^ Belshe, Mike; Thomson, Martin; Peon, Roberto (Mai 2015). "Hypertext Transfer Protocol Version 2 (http/2)". Tools.ietf.org. Abgerufen 17. November, 2017.
HTTP/2 verwendet Datenrahmen, um Nachrichtennutzlasten zu tragen. Die in Abschnitt 4.1 von [RFC7230] definierte "chunkierte" Transfer -Codierung darf nicht in HTTP/2 verwendet werden
- ^ a b Sebastian Anthony (28. März 2012). "S & M gegen SPDY: Microsoft und Google Battle um die Zukunft von HTTP 2.0". Extremetech.
- ^ a b Grigorik, Ilya. "Leben jenseits von HTTP 1.1: Google's Spdy".
- ^ Willy Tarreau; Amos Jeffries; Adrien de Croy; Poul-Henning Kamp (29. März 2012). "Vorschlag für ein netzwerkfreundliches HTTP-Upgrade". Netzwerkarbeitsgruppe. Internettechnik-Arbeitsgruppe.
- ^ Doug Beaver (15. Juli 2012). "HTTP2 -Interessensausdruck" (Mailingliste). W3c.
- ^ Dio Synodinos (30. November 2012). "HTTP/2 Erster Entwurf veröffentlicht". Infoq.
- ^ a b Ilya, Grigorik (2015). HTTP/2: Ein neuer Auszug aus dem Hochleistungs -Browser -Netzwerk (Mai 2015, First Ed.). Sebastopol, Kalifornien: O'Reilly Media. S. 211–224. ISBN 9781491932483. OCLC 1039459460.
- ^ "SPDY: Ein experimentelles Protokoll für ein schnelleres Netz". Die Chromprojekte.
- ^ Chris Bentzel; Bence Béky (9. Februar 2015). "Hallo Http/2, auf Wiedersehen spdy". Chrom -Blog.
UPDATE: Um sich besser mit Chroms Release -Zyklus auszurichten, werden die Unterstützung von SPDY und NPN mit der Veröffentlichung von Chrome 51 entfernt.
- ^ "API -Abschreibungen und Entfernungen in Chrome 51".
TL; DR: Unterstützung für HTTP/2 ist weit verbreitet genug, dass die Unterstützung von SPDY/3.1 fallen gelassen werden kann.
- ^ Shadrin, Nick (7. Juni 2016). "Unterstützung von HTTP/2 für Google Chrome -Benutzer | nginx". Nginx. Abgerufen 10. Juli, 2017.
- ^ a b Nottingham, Mark (7. Juni 2014). "RFC2616 ist tot". Abgerufen 20. September, 2014.
- ^ "HTTP/1.1, Teil 1: URIS-, Verbindungs- und Nachrichten-Parsen: Draft-ITF-Httpbis-p1-Messaging-00". 20. Dezember 2007. Abgerufen 20. September, 2014.
- ^ "Sicherheitsanforderungen für HTTP: Draft-ITF-Httpbis-Security-Properties-00.txt". 23. Januar 2008. Abgerufen 20. September, 2014.
- ^ Nottingham, Mark (24. Januar 2012). "Wiederaufladung httpbis". Abgerufen 20. September, 2014.
- ^ Nottingham, Mark (14. Oktober 2012). "Arbeitsgruppe Letzter Anruf für HTTP/1.1 P1 und P2". Abgerufen 20. September, 2014.
- ^ Nottingham, Mark (23. Oktober 2012). "Zweite Arbeitsgruppe Letzter Anruf für HTTP/1.1 P4 bis P7". Abgerufen 20. September, 2014.
- ^ "SPDY-Protokoll: Draft-ITF-httpbis-http2-00". HTTPBIS -Arbeitsgruppe. 28. November 2012. Abgerufen 20. September, 2014.
- ^ Nottingham, Mark (30. November 2012). "Erster Entwurf von HTTP/2". Abgerufen 20. September, 2014.
- ^ "Hypertext Transfer Protocol (HTTP/1.1): Nachrichtensyntax und Routing". Archiviert Aus dem Original am 13. August 2014. Abgerufen 20. September, 2014.
- ^ "Letzter Anruf: <Draft-ITF-HTTPBIS-P1-Messaging-24.txt> (Hypertext-Transferprotokoll (HTTP/1.1): Nachrichtensyntax und Routing) nach vorgeschlagenem Standard". Die IESG. 21. Oktober 2013. Abgerufen 20. September, 2014.
- ^ "Protokollaktion: 'Hypertext Transfer Protocol (HTTP/1.1): Nachrichtensyntax und Routing' zu vorgeschlagenem Standard (Draft-ITF-HTTPBIS-P1-Messaging-26.txt)". IETF-Announce (Mailingliste). Die IESG. 12. Februar 2014. Abgerufen 18. Januar, 2015.
- ^ Das RFC Editor Team (6. Juni 2014). "RFC 7230 für Hypertext Transfer Protocol (HTTP/1.1): Nachrichtensyntax und Routing". IETF-Announce (Mailingliste). Abgerufen 18. Januar, 2015.
{{}}
:|last=
hat generischen Namen (Hilfe) - ^ Nottingham, Mark (1. August 2014). "Arbeitsgruppe Letzter Anruf: Draft-ITF-Httpbis-HTTP2-14 und Draft-ITF-Httpbis-Header-Compression-09". HTTP -Arbeitsgruppe. Abgerufen 7. September, 2014.
- ^ "Letzter Anruf: <Draft-ITF-Httpbis-Http2-16.txt> (Hypertext Transfer Protocol Version 2) zu dem vorgeschlagenen Standard aus der IESG am 2014-12-31". Internettechnik-Arbeitsgruppe. 2014. Abgerufen 1. Januar, 2015.
- ^ "IESG Agenda: 2015-01-22". Ietf. Archiviert von das Original am 15. Januar 2015. Abgerufen 15. Januar, 2015.
- ^ Das RFC -Editor -Team (14. Mai 2015). "RFC 7540 auf Hypertext Transfer Protocol Version 2 (HTTP/2)". IETF-Announce (Mailingliste).
{{}}
:|author=
hat generischen Namen (Hilfe) - ^ "RFC 7301 - TLS (Transport Layer Security) Application -Layer -Protokollverhandlungserweiterung". Ietf. Juli 2014.
- ^ a b "HTTP/2 häufig gestellte Fragen". IETF HTTP Arbeitsgruppe. Abgerufen 8. September, 2014.
- ^ "Networking/HTTP2". Mozillawiki. Abgerufen 7. September, 2014.
- ^ "HTTP/2 Implementierungsstatus". Mnots Blog.
- ^ a b Kamp, Poul-Henning (6. Januar 2015). "HTTP/2.0 - Das IETF ruft es in (schlechtes Protokoll, schlechte Politik) an". ACM -Warteschlange.
{{}}
: Journal zitieren erfordert|journal=
(Hilfe) - ^ Grigorik, Ilya. "Ist TLS schon schnell?". Abgerufen 30. Dezember, 2015.
- ^ Kamp, P. H. (2015). "Http/2.0". Kommunikation der ACM. 58 (3): 40. doi:10.1145/2717515. S2CID 20337779.
- ^ Kamp, Poul-Henning (7. Januar 2015). "Re: Last Call: <Draft-ITF-httpbis-http2-16.txt> (Hypertext Transfer Protocol Version 2) zu dem vorgeschlagenen Standard". [email protected] (Mailingliste). Abgerufen 12. Januar, 2015.
- ^ Lear, Eliot (25. August 2013). "Obligatorische Verschlüsselung * ist * Theater". [email protected] (Mailingliste). Abgerufen 26. Januar, 2015.
- ^ Murenin, Konstantine A. (9. Januar 2015). "Re: Last Call: <Draft-ITF-httpbis-http2-16.txt> (Hypertext Transfer Protocol Version 2) zu dem vorgeschlagenen Standard". [email protected] (Mailingliste). Abgerufen 12. Januar, 2015.
- ^ Paul Hoffman. "Minimaler nicht authentifizierter Verschlüsselung (MUE) für HTTP-2: Draft-hoffman-httpbis-minimal-unauth-cen-01". Internettechnik-Arbeitsgruppe.
- ^ Mark Nottingham; Martin Thomson. "Opportunistische Verschlüsselung für HTTP-URIs: Entwurfsnottingham-HTTP2-Encryption-03". Internettechnik-Arbeitsgruppe.
- ^ Mark Nottingham; Martin Thomson. "Opportunistische Sicherheit für HTTP: Draft-ITF-HTTPBIS-HTTP2-CRYPTION-01". Internettechnik-Arbeitsgruppe.
- ^ Huston, Geoff (4. März 2019). "Ein kurzer Blick auf Quic". www.circleid.com. Abgerufen 2. August, 2019.
- ^ Gal, Shauli (22. Juni 2017). "Das vollständige Bild auf HTTP/2 und Hol Blocking". Mittel. Abgerufen 3. August, 2019.
- ^ "HTTP/2 -Modul für Apache HTTPD". Abgerufen 28. Juli, 2015.
- ^ "Apache 2.4.17 Release Changelog". Abgerufen 22. August, 2017.
- ^ Matthew Steele (19. Juni 2014). "Mod_spdy ist jetzt ein Apache -Projekt". Google Developers Blog.
- ^ "Protokoll von /httpd /mod_spdy". svn.apache.org. Abgerufen 3. Februar, 2017.
- ^ "Apache Tomcat -Migration". Abgerufen 29. Juli, 2016.
- ^ "Apache Traffic Server Downloads". TrafficServer.apache.org. 21. September 2015.
- ^ Server, Caddy Web (23. März 2016). "Caddy 2 - Der ultimative Server mit automatischen HTTPS". caddyserver.com. Abgerufen 8. August, 2020.
- ^ "Charles 4 hat http/2". Öffentliches Objekt. 2. August 2016. Abgerufen 12. Oktober, 2020.
- ^ "3 einfache Schritte, um HTTP/2 -Leistung in Legacy -Webanwendungen zu bringen". 22. September 2015.
- ^ "Sucuri += http/2 - Ankündigung von HTTP/2 -Unterstützung". Sucuri. 27. November 2015. Abgerufen 5. Dezember, 2015.
- ^ Robert Haynes. "Auf Wiedersehen spdy, hallo http/2". F5 -Netzwerke. Abgerufen 18. September, 2015.
- ^ Risov Chakrabortty (5. Juli 2016). "Neue Funktionen, Funktionen der Barracuda Web Application Firewall hinzugefügt". Barracuda -Netzwerke.
- ^ "H2O - Der optimierte HTTP/2 -Server". H2O.examp1e.net.
- ^ "Was ist neu in Haproxy 1.8". haproxy.com. November 2017. Abgerufen 9. Februar, 2018.
- ^ "Jetty Change -Protokoll". Eclipse Foundation. 28. Mai 2015. Abgerufen 28. Mai, 2015.
- ^ "Feature #2813: Unterstützung für das HTTP/2 -Protokoll", LightTpd
- ^ "LSWS 5.0 ist ausgegeben - Unterstützung für HTTP/2, ESI, Litemage -Cache". 17. April 2015.
- ^ Rob Trace; David Walp (8. Oktober 2014). "HTTP/2: Die lang erwartete Fortsetzung". Msdn ieblog. Microsoft Corporation.
- ^ "Netty.News: Netty 4.1.0.Final veröffentlicht". netty.io. Abgerufen 1 Juni, 2016.
- ^ "Nginx Changelog". www.nginx.com. 22. September 2015.
- ^ "Änderungen mit Nginx 1.14.2". nginx.org. 4. Dezember 2018. Abgerufen 27. September, 2019.
- ^ Foundation, Knoten JS. "Knoten V8.13.0 (LTS)". Node.js. Abgerufen 5. Juni, 2019.
- ^ "Knoten HTTP2". www.github.com. 26. Juli 2016.
- ^ "Knoten v8.4.0 (Strom)". nodejs.org. 15. August 2017.
- ^ "ASP.NET CORE 2.2.0-PREVIEW1: HTTP/2 in Kestrel". Abgerufen 6. April, 2021.
- ^ "OpenLiteSespeed 1.4.5 Ändern des Protokolls". Litespeed Technologies, Inc. 26. Februar 2015. Abgerufen 26. Februar, 2015.
- ^ "Pulse Virtual Traffic Manager". 22. August 2017.
- ^ "Radware kombiniert ein integriertes HTTP/2 -Gateway mit seiner führenden FastView -Technologie, um Webserver -Plattformen erhöhte Beschleunigung bereitzustellen.". 20. Juli 2015.
- ^ "www.shimmercat.com". 23. März 2016.
- ^ "Warum Pagecdn und welches Problem löst es?". Pagecdn. Abgerufen 11. Januar, 2020.
- ^ "Http/2 ist hier! Auf Wiedersehen spdy? Noch nicht ganz". Wolkenflare. Abgerufen 5. Dezember, 2015.
- ^ Krasnov, Vlad (28. April 2016). "Unterstützung für den HTTP/2 -Server -Push ankündigen". Wolkenflare. Abgerufen 18. Mai, 2016.
- ^ "Amazon Cloudfront unterstützt jetzt HTTP/2". Amazon Web Services, Inc.. Abgerufen 8. September, 2016.
- ^ "Bekanntgabe der begrenzten Verfügbarkeit für HTTP/2". Abgerufen 22. August, 2017.
- ^ "HTTP/2 ist hier: Was Sie wissen müssen". Abgerufen 1. November, 2015.
- ^ "HTTP/2 MEHR AUF CYBER -Angriffe gefährdet?". Informationszeitalter. 3. August 2016. Abgerufen 4. Februar, 2019.
Externe Links
- Offizielle Website
- Http/2 an GitHub
- RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
- RFC 7541 - HPACK: Headerkomprimierung für http/2
- HTTP/2 erklärt (Daniel Stenberg)
- SPDY -Protokoll (Draft-Mbelshe-httpbis-spdy-00)
- HTTP -Geschwindigkeit+Mobilität (Draft-Montenegro-Httpbis-Speed-Mobility-01)
- Vorschlag für ein netzwerkfreundliches HTTP-Upgrade (Draft-Tarreau-httpbis-network-freundlich-00)