Frage

Könnte jemand geben Sie mir einen kurzen überblick über die Unterschiede zwischen HTTP 1.0 und HTTP 1.1?Ich habe einige Zeit mit beiden RFCs, aber nicht in der Lage zu ziehen aus einer Menge von Unterschied zwischen Ihnen.Wikipedia sagt dies:

HTTP/1.1 (1997-1999)

Aktuelle version;persistente verbindungen standardmäßig aktiviert und funktioniert gut mit proxies.Auch unterstützt Anfrage pipelining, so dass mehrere Anfragen gleichzeitig gesendet, sodass der server bereiten Sie für den workload und möglicherweise die übertragung der angeforderten Ressourcen schneller an den client.

Aber das bedeutet nicht viel für mich.Ich weiß, dies ist ein etwas kompliziertes Thema, ich bin also nicht erwarten, eine vollständige Antwort, aber kann mir jemand einen kurzen überblick über die Unterschiede bei etwas niedrigeren Niveau?
Damit meine ich, dass ich mich für die info, die ich brauchen würde, um zu wissen, zu implementieren, die entweder ein HTTP-server oder Anwendung.Ich bin hauptsächlich auf der Suche für einen Schubs in die richtige Richtung, so dass ich es herausfinden auf meine eigenen.

War es hilfreich?

Lösung

Proxy-Unterstützung und Host-Feld ein:

HTTP 1.1 hat eine erforderliche Host-header von spec.

HTTP 1.0 nicht offiziell benötigen einen Host-header, aber es tut nicht weh, hinzufügen und viele Anwendungen (proxies) erwarten zu sehen, den Host-header, unabhängig von der version des Protokolls.

Beispiel:

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

Dieser header ist nützlich, weil es ermöglicht die Weiterleitung einer Nachricht durch den proxy-Servern, und auch, weil Ihr web-server kann unterscheiden zwischen verschiedenen Websites auf dem gleichen server.

Dies bedeutet, dass, wenn Sie haben blahblahlbah.com und helohelohelo.com beide zeigen auf die gleiche IP.Ihr web-server kann das Host-Feld zu unterscheiden, welche Seite der client-Maschine will.

Permanente verbindungen:

HTTP 1.1 auch können Sie permanente verbindungen, was bedeutet, dass Sie können mehr als eine Anforderung/Antwort auf die gleiche HTTP-Verbindung.

In HTTP 1.0 mussten Sie öffnen eine neue Verbindung für jede Anforderung/Antwort-paar.Und nach jeder Antwort wird die Verbindung geschlossen werden würde.Dies führt zu einigen großen Effizienz Probleme aufgrund von TCP Slow Start.

OPTIONEN Methode:

HTTP/1.1 stellt die OPTIONEN-Methode.Ein HTTP-client können diese Methode verwenden zu bestimmen die Fähigkeiten des HTTP-Servers.Es ist meist verwendet für Cross-Origin Resource Sharing in web-Anwendungen.

Caching:

HTTP 1.0-Unterstützung für caching über den header:If-Modified-Since.

HTTP 1.1 erweitert die caching-Unterstützung viel durch die Verwendung von etwas namens 'entity-tag'.Wenn 2 Ressourcen sind die gleichen, dann werden Sie haben die gleichen entity-tags.

HTTP 1.1 fügt auch die If-Unmodified-Since, If-Match, If-None-Match conditional Header.

Es gibt auch weitere Neuerungen in Bezug auf das caching wie Sie die Cache-Control-header.

100 Continue status:

Es ist ein neuer return code in HTTP/1.1 100 Continue.Dies ist zu verhindern, dass ein client sendet eine große Anfrage, wenn dieser client ist auch nicht sicher, ob der server kann die Anforderung nicht verarbeiten, oder berechtigt ist, die Anforderung zu verarbeiten.In diesem Fall sendet der client nur die Header, und der server dem client mitteilen, 100 Fortzufahren, gehen Sie weiter mit die Körper.

Viel mehr:

  • Digest-Authentifizierung und proxy-Authentifizierung
  • Zusätzliche neue status-codes
  • Chunked transfer encoding
  • Anschluss-header
  • Erweiterte Komprimierung unterstützen
  • Viel viel mehr.

Andere Tipps

 HTTP 1.0 (1994)

  • Es ist immer noch in Gebrauch
  • Kann von einem Client verwendet werden, die nicht mit Chunked umgehen kann (Oder komprimiert) Server Antworten

 HTTP 1.1 (1996- 2015)

  • formalisiert viele Erweiterungen der Version 1.0
  • Unterstützt persistent und Pipeline-Verbindungen
  • Unterstützung chunked Transfers, Kompression / Dekompression
  • Unterstützt virtuelles Hosting (einen Server mit einer einzigen IP-Adresse Hosting mehrere Domains)
  • Unterstützt mehrere Sprachen
  • Unterstützt Byte-Range-Transfer; nützlich für die abgebrochene Datenwiederaufnahme Transfer

HTTP 1.1 ist eine Erweiterung von HTTP 1.0. Im Folgenden wird die vier wichtige Verbesserungen:

  1. Die effiziente Nutzung von IP-Adressen, indem mehrere Domänen sein von einer einzigen IP-Adresse bedient.

  2. Schnellere Reaktion, indem Sie einen Webbrowser, um mehr zu schicken Anfragen über eine einzige persistente Verbindung.

  3. Schnellere Reaktion für dynamisch generierten Seiten, durch die Unterstützung für gesendet werden aufgeteilte Codierung, die eine Reaktion ermöglicht, vor ihrer Gesamtlänge bekannt ist.
  4. Schnellere Reaktion und große Bandbreiteneinsparungen durch Cache Hinzufügen Unterstützung.

für triviale Anwendungen (z sporadisch einen Temperaturwert von einem webfähigen Thermometer Abrufen) HTTP 1.0 ist in Ordnung sowohl für einen Client und einen Server. Sie können in etwa 20 Zeilen Code einen Barebone-socket-basierten HTTP 1.0-Client oder Server schreiben.

Für kompliziertere Szenarien HTTP 1.1 ist der Weg zu gehen. Erwarten Sie eine 3 bis 5-fache Steigerung der Codegröße für die Feinheiten des komplexeren HTTP 1.1-Protokoll handelt. Die Komplexität kommt hauptsächlich, weil in HTTP 1.1 Sie erstellen müssen, analysieren und auf verschiedene Header reagieren. Sie können ein Client-Anwendung von dieser Komplexität abzuschirmen eine HTTP-Bibliothek verwenden, indem Sie mit oder Server einen Web-Application-Server verwenden.

Einer der ersten Unterschiede, die ich von oben auf den Kopf erinnern können, sind mehrere Domänen in dem gleichen Server, Teilressource Abruf ausgeführt wird, das Sie den Download einer Ressource abzurufen und beschleunigen können (es ist, was fast jeder Download-Beschleuniger der Fall ist).

Wenn Sie eine Anwendung wie eine Website oder ähnlich entwickeln wollen, brauchen Sie nicht zu viel über die Unterschiede zu kümmern, aber Sie sollte kennt den Unterschied zwischen GET und POST Verben zumindest.

Nun, wenn Sie einen Browser entwickeln wollen, dann ja, haben Sie das komplette Protokoll als auch wissen, als ob Sie einen HTTP-Server zu entwickeln versuchen.

Wenn Sie nur daran interessiert sind, das HTTP-Protokoll zu wissen, würde ich empfehlen, beginnen Sie mit HTTP / 1.1 statt 1.0.

HTTP 1.1 ist die neueste Version des Hypertext Transfer Protocol, das World Wide Web Anwendungsprotokoll, das auf der Oberseite des Internet TCP / IP-Protokolle ausgeführt wird. vergleichen 1,0 bis HTTP, HTTP 1.1 bietet eine schnellere Bereitstellung von Web-Seiten als die ursprüngliche HTTP und reduziert Webverkehr.

Webverkehr Beispiel: Zum Beispiel, wenn Sie einen Server zugreifen. Zur gleichen Zeit so viele Benutzer den Server für den Zugriff auf Daten, dann gibt es eine Chance für den Server hängen. Dies ist Web-Traffic.

Im Vergleich zu 1.0, 1.1 reduziert Web-Datenverkehr

scroll top