it-swarm.com.de

HTTP 1.0 vs. 1.1

Könnte mir jemand einen kurzen Überblick über die Unterschiede zwischen HTTP 1.0 und HTTP 1.1 geben? Ich habe einige Zeit mit den beiden RFCs verbracht, konnte aber nicht viel Unterschied zwischen ihnen machen. Wikipedia sagt das:

HTTP/1.1 (1997-1999)

Aktuelle Version; persistente Verbindungen sind standardmäßig aktiviert und funktionieren gut mit Proxys. Unterstützt außerdem das Anforderungs-Pipelining, wodurch mehrere Anforderungen gleichzeitig gesendet werden können, sodass sich der Server auf die Arbeitslast vorbereiten und die angeforderten Ressourcen möglicherweise schneller an den Client übertragen kann.

Das bedeutet mir aber nicht viel. Mir ist klar, dass dies ein etwas kompliziertes Thema ist, daher erwarte ich keine vollständige Antwort. Kann mir jemand einen kurzen Überblick über die Unterschiede auf einer etwas niedrigeren Ebene geben?
Damit meine ich, dass ich nach den Informationen suche, die ich wissen muss, um entweder einen HTTP-Server oder eine Anwendung zu implementieren. Ich suche meistens einen Nudge in die richtige Richtung, damit ich es selbst herausfinden kann. 

226
Jason Baker

Proxy-Unterstützung und das Host-Feld:

HTTP 1.1 hat einen erforderlichen Hostheader nach Vorgabe.

HTTP 1.0 erfordert offiziell keinen Hostheader, aber es ist nicht schaden, einen hinzuzufügen. Viele Anwendungen (Proxies) erwarten, dass der Hostheader unabhängig von der Protokollversion angezeigt wird.

Beispiel:

GET / HTTP/1.1
Host: www.blahblahblahblah.com

Dieser Header ist hilfreich, da Sie damit eine Nachricht über Proxyserver weiterleiten können und Ihr Webserver zwischen verschiedenen Sites auf demselben Server unterscheiden kann.

Das bedeutet also, wenn Sie blahblahlbah.com und helohelohelo.com haben, die beide auf dieselbe IP zeigen. Ihr Webserver kann das Feld "Host" verwenden, um zu unterscheiden, welche Site der Clientcomputer wünscht. 

Persistente Verbindungen:

Mit HTTP 1.1 können Sie auch dauerhafte Verbindungen haben. Dies bedeutet, dass Sie für dieselbe HTTP-Verbindung mehrere Anforderungen/Antworten verwenden können. 

In HTTP 1.0 mussten Sie für jedes Anfrage/Antwort-Paar eine neue Verbindung herstellen. Und nach jeder Antwort würde die Verbindung geschlossen werden. Dies führte zu großen Effizienzproblemen aufgrund von TCP Slow Start .

OPTIONS-Methode:

HTTP/1.1 führt die Methode OPTIONS ein. Ein HTTP-Client kann mit dieser Methode die Fähigkeiten des HTTP-Servers ermitteln. Es wird hauptsächlich für das Cross-Source-Ressourcen-Sharing in Webanwendungen verwendet.

Caching:

HTTP 1.0 hatte Unterstützung für das Caching über den Header: If-Modified-Since.

HTTP 1.1 erweitert die Zwischenspeicherungsunterstützung viel, indem es den sogenannten Entity-Tag verwendet. Wenn zwei Ressourcen gleich sind, haben sie die gleichen Entity-Tags. 

HTTP 1.1 fügt außerdem die bedingten Header If-Unmodified-Since, If-Match, If-None-Match hinzu. 

Es gibt auch weitere Ergänzungen zum Caching wie der Cache-Control-Header. 

100 Status fortsetzen:

Es gibt einen neuen Rückkehrcode in HTTP/1.1. 100 Weiter. Dadurch soll verhindert werden, dass ein Client eine große Anfrage sendet, wenn der Client nicht einmal sicher ist, ob der Server die Anfrage verarbeiten kann oder ob er berechtigt ist, die Anfrage zu bearbeiten. In diesem Fall sendet der Client nur die Header, und der Server teilt dem Client mit, dass er fortfahren soll. 

Viel mehr:

  • Digest-Authentifizierung und Proxy-Authentifizierung
  • Extra neue Statuscodes
  • Chunked-Übertragungskodierung
  • Verbindungsheader
  • Verbesserte Komprimierungsunterstützung
  • Viel viel mehr. 
321
Brian R. Bondy

 HTTP 1.0 (1994)

  • Es wird noch verwendet
  • Kann von einem Client verwendet werden, der keine Serverantworten mit Chunked (Oder komprimierten Servern) verarbeiten kann

 HTTP 1.1 (1996-2015)

  • Formalisiert viele Erweiterungen zu Version 1.0
  • Unterstützt persistente und Pipeline-Verbindungen
  • Unterstützt Chunk-Transfers, Komprimierung/Dekomprimierung
  • Unterstützt virtuelles Hosting (ein Server mit einer einzigen IP-Adresse, der mehrere Domänen hostet)
  • Unterstützt mehrere Sprachen
  • Unterstützt Bytebereichsübertragungen; Nützlich für die Wiederaufnahme unterbrochener Daten Übertragungen

HTTP 1.1 ist eine Erweiterung von HTTP 1.0. Im Folgenden sind die vier Hauptverbesserungen aufgeführt:

  1. Effiziente Verwendung von IP-Adressen, indem mehrere Domänen von einer einzigen IP-Adresse bedient werden können.

  2. Schnellere Antwort, da ein Webbrowser mehrere -Anforderungen über eine einzige dauerhafte Verbindung senden kann.

  3. Schnellere Antwort für dynamisch generierte Seiten durch Unterstützung der Kodierung mit Chunked, wodurch die Antwort gesendet werden kann, bevor ihre Gesamtlänge von _ _.
  4. Schnellere Antwort und große Bandbreiteneinsparungen durch Hinzufügen von cachesupport.
11
i_th

Für triviale Anwendungen (z. B. sporadisches Abrufen eines Temperaturwerts von einem webfähigen Thermometer) ist HTTP 1.0 sowohl für einen Client als auch für einen Server geeignet. Sie können einen sockelbasierten HTTP 1.0-Client oder -Server auf Basis von Bare-Bones in etwa 20 Zeilen Code schreiben.

Für kompliziertere Szenarien ist HTTP 1.1 der richtige Weg. Erwarten Sie einen 3 bis 5-fachen Anstieg der Codegröße, um mit den Feinheiten des komplexeren HTTP 1.1-Protokolls fertig zu werden. Die Komplexität entsteht hauptsächlich, da Sie in HTTP 1.1 verschiedene Header erstellen, analysieren und darauf reagieren müssen. Sie können Ihre Anwendung vor dieser Komplexität schützen, indem ein Client eine HTTP-Bibliothek verwendet oder der Server einen Webanwendungsserver verwendet.

8

Ein wichtiges Kompatibilitätsproblem ist die Unterstützung von persistenten Verbindungen . Ich habe kürzlich an einem Server gearbeitet, der HTTP/1.1 "unterstützt" hat, die Verbindung jedoch nicht schließen konnte, wenn ein Client eine HTTP/1.0-Anforderung sendete. Wenn Sie einen Server schreiben, der HTTP/1.1 unterstützt, stellen Sie sicher, dass er auch für HTTP/1.0-Clients geeignet ist.

7
Troy J. Farrell

Einer der ersten Unterschiede, an die ich mich von Anfang an erinnern kann, sind mehrere Domänen, die auf demselben Server ausgeführt werden. Das teilweise Abrufen von Ressourcen ermöglicht es Ihnen, den Download einer Ressource abzurufen und zu beschleunigen (fast jeder Download-Beschleuniger führt dies aus).

Wenn Sie eine Anwendung wie eine Website oder ähnliches entwickeln möchten, müssen Sie sich nicht zu viele Gedanken über die Unterschiede machen, aber Sie sollten den Unterschied zwischen kennen GET und POST Verben mindestens.

Wenn Sie nun einen Browser entwickeln möchten, müssen Sie das vollständige Protokoll kennen und versuchen, einen HTTP-Server zu entwickeln.

Wenn Sie nur das HTTP-Protokoll kennen möchten, empfehle ich Ihnen, mit HTTP/1.1 anstatt mit 1.0 zu beginnen.

5
Leandro López

HTTP 1.1 ist die neueste Version des Hypertext Transfer Protocol, des World-Wide-Web-Anwendungsprotokolls, das auf der TCP/IP-Protokollfamilie des Internets ausgeführt wird. Im Vergleich zu HTTP 1.0 bietet HTTP 1.1 eine schnellere Bereitstellung von Webseiten als das ursprüngliche HTTP und reduziert den Webverkehr.

Web Traffic Beispiel: Zum Beispiel, wenn Sie auf einen Server zugreifen. Zur gleichen Zeit greifen so viele Benutzer auf den Server für die Daten zu. Dann besteht die Möglichkeit, den Server aufzuhängen. Dies ist der Webverkehr.

1
Krishna Mohan

Verglichen mit 1.0 verringert 1.1 den Webverkehr

0
Ram MVS