HTTP

Das Hyper Text Transfer Protokoll basiert auf TCP/IP und ist somit auch verbindungsorientiert. HTTP übermittelt Daten vom Webserver zum Webbrowser und umgekehrt. Übertragen werden HTML-Dokumente (Hypertext Markup Language) sowie einige Erweiterungen wie Bilddateien, Audiodateien etc. Dateien werden im Zusammenhang mit HTTP als Ressourcen bezeichnet. Die Spezialisierung der zusätzlichen Formate findet auf Browser und Server über die. MIME-Types statt. Zwischen Browser (Client) und Server wird über das TCP/IP eine Verbindung hergestellt und über die URL (Unified Ressource Locators = Format für Pfadangaben im Internet wie z.B. http://www.heimbergers.de\PC\tcp04.htm) wird eine bestimmte Datei aufgerufen. Diese Datei besteht zumeist aus einem HTML-Code und anderen implementierten Datenformaten wie beispielsweise .jpg, .png oder .gif als typische Bildformate im Internet.

Anders ausgedrückt ähnelt die Funktionsweise einem Frag- Antwort-Spiel:

Ein fragendes Programm (Internet-Browser) öffnet eine Verbindung zu einem Programm, das auf Fragen wartet (Server) und sendet ihm die Anfrage zu. Der Server antwortet auf diese Frage mit einer Statusmeldung, auf die eine MIME-artige Nachricht folgt, die Informationen über den Server und unter Umständen schon das gefragte Dokument enthält. Um Daten vom Server anzufordern wird zuerst die Initial Request Line gesendet. Diese besteht aus dem Aufruf einer bestimmten Methode. Die Methode zum Anfordern von Daten heißt GET. Anschließend folgt die Pfadangabe auf dem Server für das gesuchte File, dann die benutzte HTTP-Version. Sind die Daten an den Browser übermittelt, wird die Verbindung zum Server wieder beendet. So soll erreicht werden, dass die Leitungskapazitäten geschont werden.

Jede Kommunikation zwischen zwei WWW-Programmen besteht aus HTTP-Nachrichten, die in Form von Anfragen und Antworten zwischen Client und Server ausgetauscht werden. Eine HTTP-Message kann entweder ein Simple-Request, eine Simple-Response, ein Full-Request oder eine Full-Response sein.

Jedes der Felder eines HTTP-Botschaftenkopfes weist die gleiche Struktur auf. Im RFC 822 wurde definiert, dass jedes Feld mit einem Feldnamen und dem Feldinhalt erscheint. Auf den Feldnamen muss unbedingt ein Doppelpunkt folgen. Der Feldname kann alle Zeichen mit Ausnahme des Doppelpunktes und der Escape-Sequenzen enthalten. Die Allgemeinfelder enthalten das Datum, die Message-ID, die verwendete MIME-Version und ein "forwarded"-Feld, das angibt, ob das Dokument ursprünglich von einer anderen Adresse stammt.

Bei Anfragen wird zwischen einfachen und komplexen Anfragen unterschieden. Eine einfache Anfrage besteht nur aus einer Zeile, die angibt, welche Information gewünscht wird. Mit "GET http://www.heimbergers.de" wird nur die Methode (GET) und die URL des Dokumentes angegeben. Es werden keine weiteren Felder erwartet und vom adressierten Server wird auch nur ein einfacher Antwortkopf zurückgesendet. Es kann aber auch eine komplexere Anfrage erzeugt werden. Dabei muss der Zeile zusätzlich die Version des HTT-Protokolls angehängt werden: "GET http://www.heimbergers.de HTTP/1.0". Der Unterschied zwischen einer einfachen und einer komplexen HTTP-Anfrage besteht also lediglich im Anhängen der HTTP-Version. Der Gegensatz zwischen einfacher und komplexer Anfrage hat Kompatibilitätsgründe. Ein Browser, in den das alte HTTP/0.9 implementiert ist, wird nur eine einfache Anfrage absenden können. Ein neuer Server muss dann in der Lage sein, im Format des HTTP/0.9 zu antworten.