SSL - HTTP2

HTTP2 ist die neueste Version der Hypertext Transfer Protocol oder HTTP, wird von Browsern zur Kommunikation mit Webservern verwendet. Abgeleitet vom älteren SPDY Protokoll, HTTP2 ist die erste neue Version von HTTP seit der Standardisierung von HTTP1.1 in RFC 2068 im Jahr 1997.

Es wurde von der HTTP-Arbeitsgruppe der Internet Engineering Task Force (IETF) entwickelt httpbis (wobei "bis" "zweimal" bedeutet) und als RFC 7540 veröffentlicht im Mai 2015. Quelle

HTTP2-Einführung

HTTP2 wurde seit seiner offiziellen Veröffentlichung zunehmend von funktionierenden Websites übernommen. Der Online-Umfragedienst W3Techs stellt fest, dass die HTTP2017-Unterstützung von September 2018 bis September 2019 von 16% auf 30% aller überwachten Websites gestiegen ist.

Darüber hinaus bieten gängige Browser (z. B. Chrome, Firefox, Edge usw.) bereits vollständige Unterstützung für HTTP2. (Einige entwickelten sogar experimentelle Implementierungen, bevor HTTP2 als Standard akzeptiert wurde.)

Diese weit verbreitete Akzeptanz bedeutet, dass HTTP2 das Potenzial hat, das De-facto-Kommunikationsprotokoll des Webs zu werden.

Motivation hinter HTTP2

HTTPS'Charter [06] erwähnt mehrere Komponenten von HTTP / 1.1, die als Motivation für HTTP2 verbessert werden könnten. Das Hauptziel der Gruppe war jedoch, die vom Endbenutzer wahrgenommene Latenz zu verringern.

Um dies zu tun, httpbis Es wurde erwogen, den Bandbreiten-Overhead durch Header-Komprimierung und aggressive Prefetching-Techniken (z. B. Server-Push) zu minimieren und gleichzeitig systematisch zu versuchen, bekannte Leistungsprobleme wie Verbindungsüberlastung und das Problem der Head-of-Line-Blockierung (HoL) zu beheben.

Darüber hinaus musste HTTP2 abwärtskompatibel sein, was bedeutete, dass dieselben Methodenverben, Statuscodes, URIs und (die meisten) Headerfelder wie in HTTP 1.1 verwendet werden mussten. HTTP2 musste auch so konzipiert sein, dass es gängige HTTP-Anwendungsfälle wie Desktop- und mobile Webbrowser, Programmierschnittstellen, Proxys und Firewalls unterstützt.

Um diese Kompatibilität aufrechtzuerhalten, entwickelte die Arbeitsgruppe einen Protokollverhandlungsmechanismus, mit dem Clients und Server zwischen HTTP / 1.1-, HTTP2- oder sogar Nicht-HTTP-Protokollen wählen können.

Was ist neu in HTTP2 ?

HTTP2 verwendet weiterhin dieselben URI-Schemata und Portnummern wie HTTP / 1.1 (dh Port 80 für http URIs und Port 443 für https URIs), aber viele Dinge werden unter der Haube anders gemacht.

Die grundlegendste Änderung ist die Einführung von Rahmen als Basisdateneinheit von HTTP2.

HTTP / 1.1 wird traditionell verwendet Pakete Netzwerkdaten darstellen. Ein Client erstellt ein Anforderungspaket mit einem Methodenverb (z GET or POST), Anhängen einer Liste von Headern, die die Verbindung beschreiben, und eines Körpers, der Anwendungsdaten enthält.

Beim Empfang eines Anforderungspakets antwortet ein HTTP / 1.1-Server mit einem ähnlichen Antwortpaket, das die angeforderten Informationen enthält. Infolgedessen erfordert jeder Anforderungs- und Antwortzyklus eine neue Verbindung.

Umgekehrt stellen HTTP2-Clients eine einzelne Netzwerkverbindung mit dem Server her, die sie für die gesamte nachfolgende Netzwerkkommunikation verwenden. Header, Benutzerdaten, Fehlermeldungen und solche Informationen werden in verschiedene binäre Datenstrukturen gepackt, die als Frames bezeichnet werden, bevor sie über das Netzwerk übertragen werden.

Dies scheint eine kleine Änderung zu sein, hat jedoch erhebliche Auswirkungen.

Header-Komprimierung

Ein großer Vorteil der Verwendung von Frames besteht darin, dass HTTP2-Header in a gepackt werden HEADER Frame, der mit normalen Komprimierungsmethoden komprimiert werden kann. Header müssen vor allen Daten übertragen werden, damit die Header-Komprimierung den durch HTTP2 verursachten Bandbreiten-Overhead verringern kann.

Die Header-Komprimierung kann zusammen mit den folgenden leistungsverbessernden HTTP2-Funktionen besonders in mobilen oder Internet-of-Things-Anwendungen (IOT) nützlich sein, bei denen nur eine minimale Netzwerknutzung erforderlich ist.

Streams und Multiplexing

Eine unabhängige Folge von semantisch relevanten Frames heißt a Strom. Streams erhalten vom Endpunkt (dh Client oder Server), der sie erstellt hat, eine eindeutige Kennung, damit andere Endpunkte zwischen ihnen unterscheiden können.

Endpunkte können Frames aus mehreren Streams über dieselbe HTTP2-Verbindung verschachteln, sodass eine einzelne Netzwerkverbindung mehrere gleichzeitig geöffnete Streams unterstützt. Dieser Vorgang wird aufgerufen Multiplexing [08].

Die Wiederverwendung derselben Verbindung verringert Probleme wie die Überlastung der Verbindung und das zuvor erwähnte HoL-Problem und bietet eine bessere Leistung und eine reibungslosere Benutzererfahrung als frühere HTTP-Versionen.

Stream-Abhängigkeit und Priorisierung

Das Verwalten mehrerer gleichzeitiger Streams bedeutet, dass einige Streams vor anderen verarbeitet werden. Mit HTTP2 kann der Entwickler (oder Administrator) dieses Verhalten mit einer Funktion namens optimieren Stream-Abhängigkeit.

Ein Stream kann von der vollständigen Übertragung eines anderen Streams abhängen, bevor er verarbeitet wird. Beispielsweise ermöglicht HTTP2 auf einer Site, auf der der Hauptinhalt einer Webseite vor Empfehlungen für ähnliche Inhalte geladen werden soll, die Erstellung des Empfehlungsstroms als abhängig vom Hauptinhaltsstrom.

HTTP2 unterstützt auch Stream-Priorisierung. Das heißt, jedem Stream kann eine Priorität zugewiesen werden, um anzugeben, wie dringend die Endpunkte Ressourcen zuweisen sollen, um die Frames des Streams zu verarbeiten.

Durch Priorisierung und Stream-Abhängigkeit können Entwickler und Websitebesitzer die Netzwerknutzung ihrer Website optimieren, wodurch die Benutzererfahrung ihrer Website erheblich verbessert werden kann.

Server-Push

Schließlich kann HTTP2 die Leistung einer Website verbessern, indem es Push-Funktionen bereitstellt. Ein HTTP2-Webserver kann mit Daten auf mehr Anfragen antworten, als der Client ursprünglich angefordert hat. Auf diese Weise kann der Server Daten bereitstellen, von denen er weiß, dass ein Webbrowser eine Seite rendern muss, ohne darauf zu warten, dass der Browser die erste Antwort überprüft, und somit ohne den Aufwand eines zusätzlichen Anforderungszyklus.

Mit Server Push haben Entwickler die vollständige Kontrolle über die Anzahl der Anforderungen, die ein Browser zum Rendern seiner Website benötigt. Bei korrekter Verwendung kann diese Funktion den Netzwerk-Overhead minimieren.

Natürlich kann ein Missbrauch der Push-Funktion auch mehr Bandbreite verschwenden, als tatsächlich erforderlich ist. Aus diesem Grund ermöglicht HTTP2 einem Client, die Deaktivierung des Server-Push beim ersten Aushandeln einer Verbindung anzufordern.

HTTP2-Sicherheit

Wenn Sie bis zu diesem Punkt gelesen haben, sollte klar sein, dass die Entwickler von HTTP2 wirklich Anstrengungen unternehmen, um die Leistung zu verbessern. Es ist jedoch zu beachten, dass HTTP2 auch dazu beitragen kann, die Sicherheit der Browserbenutzer insgesamt zu verbessern.

Insbesondere ist HTTP2 sowohl für HTTP-URIs (dh ohne Verschlüsselung) als auch für HTTPS-URIs (über) definiert TLS verschlüsselte Kanäle). Obwohl der Standard selbst keine Verschlüsselung erfordert, sind alle wichtigen Browser-Implementierungen (z. B. Firefox) erforderlich [09], Chrome, Safari, Opera, IE, Edge) haben entschieden, dass dies der Fall sein wird einzige unterstütze HTTP2 über TLS.

In der Tat unterscheiden Browser zwischen Klartext-HTTP2 und HTTP2 über verschlüsselt TLS als zwei verschiedene Protokolle. Verschlüsseltes HTTP2 wird aufgerufen h2 und Klartext h2c. Zum jetzigen Zeitpunkt unterstützt keiner der gängigen Browser h2c , Was bedeutet, dass TLS Die Verschlüsselung ist obligatorisch, damit eine Website die anderen Vorteile von HTTP2 nutzen kann. Wenn HTTP2 zum Standard-Webnetzwerkprotokoll wird, können ältere Websitebesitzer, die noch kein Upgrade auf SSL / durchgeführt haben,TLSwird stark motiviert sein, dies endlich zu tun.

Fazit

Die weit verbreitete Einführung von HTTP2 wird zu einem neuen und verbesserten Web führen. Es ist schneller, benötigt weniger Bandbreite und hilft Websites, sicher zu bleiben. Durch die allgemeine Akzeptanz wird die Benutzererfahrung im Internet insgesamt reibungsloser und sicherer.

Holen Sie sich noch heute ein Zertifikat und schließen Sie sich uns in Zukunft an. Quelle

 
Security Headers sponsored by ProbelyQualys, Inc.World Wide Web Consortium, W3C ValidatorMIG.companyIT-Systemhaus AlleskönnerSeobility Score für mig.company