HTTP Tutorial
Erste Schritte mit HTTP
Suche…
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 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 / 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.
Die aktuelle Spezifikation von HTTP / 1.1, die der heutigen Implementierung von HTTP entspricht, ist in den neuen RFCs 723x enthalten:
- RFC 7230: Nachrichtensyntax und Routing
- RFC 7231: Semantik und Inhalt
- RFC 7232: Bedingte Anforderungen
- RFC 7233: Bereichsanfragen
- RFC 7234: Zwischenspeicherung
- RFC 7235: Authentifizierung
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.
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 .