Hypertext transfer protocol
Hypertext Transfer Protocol
HTTP
Tim Berners-Lee hat nicht nur HTML, sondern auch einen Transportmechanismus für die plattformübergreifenden Dokumente entwickelt: HTTP ist das wichtigste Transportprotokoll für webbasierte Inhalte.
Der Erfolg des World Wide Webs ist zu einem großen Teil auf die Einfachheit von HTTP zurückzuführen. Das Protokoll lässt sich vergleichsweise einfach implementieren. Das zu Grunde liegende Prinzip ist simpel: Die Übermittlung der Daten erfolgt nach dem Request-Response-Schema. Der HTTP-Client sendet seine Anfrage an den HTTP-Server, der diese bearbeitet und eine Antwort zurücksendet.
Ablauf einer HTTP-Verbindung
Die Kommunikation zwischen Client und Webserver erfolgt durch den Austausch von HTTP-Nachrichten.
Diese Nachrichten übertragen die Anfragen und Antworten zwischen Client und Server. Client und Server bauen zum Austausch der Nachrichten im Standardfall eine TCP-Verbindung auf Port 80 auf. Die auch Request und Response genannten Nachrichten bestehen im Wesentlichen aus zwei Teilen: Header und Daten. Der Header enthält Steuerinformationen wie zum Beispiel die verwendete Methode und die gewünschte URL.
HTTP-Requests
Eine Request ist durch die Angabe von Methode, URL und den Request-Header-Feldern bestimmt. Ein Server antwortet auf jede Request mit Informationen, ob die gewählte Methode zulässig ist oder nicht.
Eine Methode für sich genommen ist ohne Angabe des Ziels wertlos. Daher gehört zu jeder Methode eine Ziel-URL. Der Client muss dabei eine absolute URL angeben (z.b. https://www.index.
de), damit die Request auch über einen Proxyserver laufen kann. Nach dem Zugriff auf eine Quelle reicht die Angabe von relativen URLs (z.b. ../index.
html)
Requests-Header weisen folgende Struktur auf:
METHOD URL HTTP/version
> General Header
> Request Headers
> Entity Header (optional)
> Leerzeile
> Request Entity (falls vorhanden)
>
Eine Request, der eine HTML-Seite anfordert, sieht beispielsweise so aus:
GET https://www.bla.de/verzeichnis1/seite2.html HTTP/1.1
> Date Thursday, 14-Oct-99 17:55 GMT
> User-agent: Mozilla/4.6
> Accept: text/html, text/plain
>
Zuerst übermittelt der Client die Methode, durch Leerzeichen getrennt folgen die URL und die HTTP-Version.
Die weiteren Felder übermitteln die Uhrzeit, die Browserversion und welche MIME-Typen (Datentypen+Format) der Client akzeptiert. Ein Datenbereich entfällt bei diesem Nachrichtentyp.
HTTP-Response
Der Aufbau einer HTTP-Response ist ähnlich zur Request:
HTTP/version Status-Code Reason-Zeile
> General Header
> Response Header
> Entity Header (optional)
> ______Leerzeile_______
> Resource Entity (falls vorhanden)
>
Eine komplette Response, die eine HTML-Datei vom Server übermittelt, sieht beispielsweise so aus:
HTTP/1.1 200 OK
> Via: HTTP/1.1 proxy_server_name
> Server: Apache/1.3
> Content-type: text/html, text, plain
> Content-length: 78
>
> <html>
> <head>
> <title>HTTP</TITLE>
>
>
> </head>
> <body>
> <p> HTTP/1.
1-Demo</p>
> </body>
> </html>
>
Der Server übermittelt zunächst die HTTP-Version der Nachricht. Der zweite Eintrag ist die Statusmeldung. "200 OK" bedeutet in diesem Fall, dass kein Fehler aufgetreten ist. Wichtig für die weitere Bearbeitung durch den Client sind die Einträge Content Type und Content Length. Content Type beschreibt den MIME-Typ der im Datenbereich übermittelten Datei. Im Header-Feld Content Length gibt der Server die Länge der Daten in Byte an.
Response-Codes
Die Antwort des HTTP-Servers beinhaltet die Statuszeile und Response-Header-Felder. Die Statuszeile wiederum führt die Protokollversion, den Status Code und Reasons Phrase auf. Beim Status Code handelt es sich um einen dreistelligen Integer-Wert, der dem Client wichtige Informationen über Verfügbarkeit, erfolgreiche Bearbeitung oder aber auch Fehlermeldungen liefert.
Diese Meldungen sind in fünf Kategorien eingeteilt:
1xx: Informelle Meldungen: Request erhalten, Bearbeitung wird durchgeführt.
2xx: Erfolg: Request wurde erfolgreich erhalten, verstanden und angenommen.
3xx: Weiterleiten: Weitere Aktionen müssen eingeleitet werden, damit eine Request vollständig bearbeitet werden kann.
4xx: Clientfehler: Die Request enthält ungültigen Syntax oder kann nicht bearbeitet werden.
5xx: Serverfehler: Der Server kann eine gültige Request nicht bearbeiten.
HTTP-Methoden
Jede Client Request wird durch die Angabe der Methode eingeleitet. Methoden bestimmen die Aktion der Anforderung. Die aktuelle HTTP-Spezifikation sieht acht Methoden vor: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE und CONNECT.
GET: - dient zur Anforderung eines Dok.
oder einer anderen Quelle
POST: - übermittelt in 1. Linie Formulareingaben an Server
OPTIONS: - Client kann über verfügbare Kommunikationsoptionen abrufen
HEAD: - fordert lediglich den Header eines Dok. oder einer Quelle an
PUT: - erlaubt die Modifikation bestehender Quellen bzw. Erzeugung neuer Daten auf dem Server
DELETE: - Daten auf dem HTTP-Server werden gelöscht, die durch die URL identifiziert wurden
TRACE: - der Client kann Requests verfolgen, welche über mehrere Knotenpunkte gehen
CONNECT: - Client veranlasst Proxyserver jedes Protokoll auf den Originalserver weiterzuleiten. Proxy kann als Tunnel umfunktioniert werden.
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com