Looking for http Keywords? Try Ask4Keywords

HTTPErste Schritte mit HTTP


Bemerkungen

Hypertext Transfer Protocol (HTTP) verwendet ein Clientanforderungs- / Serverantwortmodell. HTTP ist ein zustandsloses Protokoll. Das bedeutet, dass der Server nicht die Informationen oder den Status jedes Benutzers für die Dauer mehrerer Anforderungen aufbewahren muss. Aus Leistungsgründen und zur Vermeidung von TCP-Verbindungslatenz können jedoch Techniken wie persistente, parallele oder Pipelined-Verbindungen verwendet werden.

Versionen

Ausführung Anmerkungen) Voraussichtliches Veröffentlichungsdatum
HTTP / 0,9 "Wie umgesetzt" 1991-01-01
HTTP / 1.0 Erste Version von HTTP / 1.0, letzte Version, die nicht in einen RFC aufgenommen wurde 1992-01-01
HTTP / 1.0 r1 Erster offizieller RFC für HTTP 1996-05-01
HTTP / 1.1 Verbesserungen bei der Verbindungsverarbeitung, Unterstützung für namenbasierte virtuelle Hosts 1997-01-01
HTTP / 1.1 r1 Eindeutige Verwendung von Schlüsselwörtern bereinigt, mögliche Probleme mit der Nachrichtenrahmung behoben 1999-06-01
HTTP / 1.1 r2 Generalüberholung 2014-06-01
HTTP / 2 Erste Spezifikation für HTTP / 2 2015-05-01

HTTP-Anfragen und Antworten

HTTP-Clients und -Server senden HTTP-Anforderungen bzw. -Antworten

HTTP beschreibt, wie ein HTTP-Client, z. B. ein Webbrowser, eine HTTP-Anforderung über ein Netzwerk an einen HTTP-Server sendet, der dann eine HTTP-Antwort an den Client zurücksendet.

Die HTTP-Anforderung ist normalerweise entweder eine Anforderung für eine Online-Ressource, z. B. eine Webseite oder ein Bild, kann jedoch auch zusätzliche Informationen enthalten, z. B. Daten, die in ein Formular eingegeben werden. Die HTTP-Antwort ist normalerweise eine Darstellung einer Online-Ressource, z. B. einer Webseite oder eines Bildes.

HTTP / 0,9

Die erste Version von HTTP, die zustande gekommen ist, ist 0.9, oft als " HTTP As Implemented " bezeichnet. Eine gebräuchliche Beschreibung von 0.9 ist "ein Unterabschnitt des vollständigen HTTP-Protokolls [dh 1.0]". Dies zeigt jedoch kaum, dass die unterschiedlichen Kapazitäten zwischen 0,9 und 1,0 liegen.

Weder Anforderungen noch Antworten in 0.9-Feature-Headern. Anforderungen bestehen aus einer einzelnen CRLF-terminierten Zeile von GET , gefolgt von einem Leerzeichen, gefolgt von der angeforderten Ressourcen-URL. Es wird erwartet, dass es sich bei den Antworten um ein einzelnes HTML-Dokument handelt. Das Ende dieses Dokuments wird markiert, indem die Verbindung serverseitig getrennt wird. Es gibt keine Möglichkeiten, den Erfolg oder Misserfolg einer Operation anzuzeigen. Die einzige interaktive Eigenschaft ist die Such - <isindex> Zeichenfolge , die an den eng verbunden ist <isindex> HTML - Tag.

Die Verwendung von HTTP / 0.9 ist heutzutage außergewöhnlich selten. Es wird gelegentlich auf eingebetteten Systemen als Alternative zu TFTP gesehen .

HTTP / 1.0

HTTP / 1.0 wurde in RFC 1945 beschrieben .

HTTP / 1.0 verfügt nicht über einige Funktionen, die heute de-facto für das Web erforderlich sind, z. B. der Host für virtuelle Hosts.

HTTP-Clients und -Server erklären jedoch manchmal immer noch, dass sie HTTP / 1.0 verwenden, wenn das HTTP / 1.1-Protokoll unvollständig implementiert ist (z. B. ohne verschlüsselte Übertragungskodierung oder Pipelining), oder die Kompatibilität wird wichtiger als die Leistung (z. B. beim Herstellen einer Verbindung zu einem lokalen Proxy) Server).

GET / HTTP/1.0
User-Agent: example/1

HTTP/1.0 200 OK
Content-Type: text/plain

Hello
 

HTTP / 1.1

Ursprünglich wurde HTTP / 1.1 1999 in RFC 2616 (Protokoll) und RFC 2617 (Authentifizierung) angegeben. Diese Dokumente sind jedoch veraltet und sollten nicht als Referenz verwendet werden:

Verwenden Sie RFC2616 nicht. Löschen Sie es von Ihren Festplattenlaufwerken, Lesezeichen und brennen Sie die ausgedruckten Kopien.

- Mark Nottingham, Vorsitzender der HTTP WG

Die aktuelle Spezifikation von HTTP / 1.1, die der heutigen Implementierung von HTTP entspricht, ist in den neuen RFCs 723x enthalten:

HTTP / 1.1 wurde unter anderem hinzugefügt:

  • Chunked Transfer Encoding, die es Servern ermöglicht, Antworten mit unbekannter Größe zuverlässig zu senden.
  • persistente TCP / IP-Verbindungen (die keine Standarderweiterung in HTTP / 1.0 waren),
  • Bereichsanfragen für die Wiederaufnahme von Downloads,
  • Cache-Steuerung.

HTTP / 1.1 versuchte, ein Pipelining einzuführen, mit dem HTTP-Clients die Anforderungs-Antwort-Latenz reduzieren können, indem sie mehrere Anforderungen auf einmal senden, ohne auf Antworten zu warten. Leider wurde diese Funktion in einigen Proxys nie richtig implementiert, was dazu führte, dass Pipeline-Verbindungen gelöscht oder die Antworten neu angeordnet wurden.

GET / HTTP/1.0
User-Agent: example/1
Host: example.com

HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 6
Connection: close

Hello
 

HTTP / 2

HTTP / 2 ( RFC 7540 ) hat das On-the-Wire-Format von HTTP von einfachen textbasierten Anforderungs- und Antwort-Headern in ein binäres Datenformat geändert, das in Frames gesendet wird. HTTP / 2 unterstützt die Komprimierung der Header ( HPACK ).

Dies reduziert den Overhead von Anforderungen und ermöglicht das gleichzeitige Empfangen mehrerer Antworten über eine einzige TCP / IP-Verbindung.

Trotz großer Änderungen im Datenformat verwendet HTTP / 2 weiterhin HTTP-Header, und Anforderungen und Antworten können genau zwischen HTTP / 1.1 und 2 übersetzt werden.