HTTP ist das WWW-eigene Protokoll in der Familie der Internet-Protokolle zum Austausch von Hypertextdokumenten.
Das WWW ist ein verteilter, Hypertext-basierter Informationsdienst im Internet dessen Vorteile in einer einheitlichen graphischen Benutzeroberfläche, der Integration auch anderer Informationsdienste, wie anonymous Filetransfer oder Gopher und die einfache Einbettung von Multimedia-Dokumenten.
HTTP ist im Grunde ein reines File-Server-Protokoll unabhängig
von der speziellen Anwendung im WWW; insbesondere sind die Beziehungen
zwischen den von einem Server bereitgestellten Dokumenten und
allgemein die Anker im Protokoll nicht sichtbar.
Beim Request, also der Anfrage des Clients beim Server, unterscheidet man zwischen einem SimpleRequest und einem FullRequest. Der SimpleRequest entspricht der Funktionalität von HTTP/V0.9.
Ein SimpleRequest SimpleRequest besteht aus der Zeile
GET URL <CR><LF>
wobei URL für eine Server-URL und <CR><LF> für <Carriage Return> <Line feed> steht.
Der FullRequest FullRequest hat einen etwas komplizierteren Aufbau:
Method URL ProtocolVersion <CR><LF>
[*<HTRQ Header>] [<CR><LF> <DATA>]
Der FullRequest ist somit eine Erweiterung, die eine bessere Kommunikation zwischen dem Client und Server erlaubt.
Der FullRequest unterscheidet sich vom SimpleRequest unter anderem
dadurch, daß er neben der GET Methode weitere Methoden
erkennt. Als method können u.a. angegeben werden:
|
|
|
|
|
|
|
|
Hier meist ein partieller Uniform Resource Locator (URL),
bestehend aus absolutem Pfad- und Dateinamen.
(Vollständige URLs mit Protokoll und Hostnamen treten auf
zwischen Client und Proxy-Server.)
Bsp.: /welcome.html
Über die Protokollversion wird das Aussehen der gesamten Anfrage spezifiziert.
Die Protokollversion HTTP/V1.0 erlaubt eine beliebige Anzahl von <HTRQ Header> Feldern und damit den FullRequest.
Die Protokollversion HTTP/V0.9 erlaubt nur den SimpleRequest.
Über die HTRQ (HyperText Transfer Request) Felder kann der Client dem Server bestimmte Mitteilungen machen. Dies sind beispielsweise ein
From: | Feld, über das die Mailadresse des Anwenders dem Server bekannt gemacht werden kann oder das |
Accept: | Feld, über das der Client anzeigt, welche MIME-Typen er akzeptiert. Der HTRQ Header |
Authorisation: | wird zur Autorisierung verwendet. |
Der Client signalisiert dem Server welche Formate er akzeptiert.
text/plain | Textdateien |
text/html | HTML-Seiten |
image/gif | GIF-Bilder |
application/x-zip-compressed | ZIP-Dateien |
*/* | alle Formate |
Aufgrund der Leistungsfähigkeiten heutiger Browser wird zumeist der MIME-Typ */* verwendet, da nahezu alle Formate verarbeitet werden können.
Der Response Block, der vom Server zum Client gesendet wird, hat folgende Syntax:
<status line><CR><LF>
<Response Header><CR><LF>
<DATA><CR><LF>
Die Antwort des Servers beginnt mit der Statuszeile, die i.a. das folgende Format hat:
<status line> ::= <http version> <status code>
<reason line> <CR> <LF>
<http version>
Die status line besteht aus folgenden Komponenten:
http version:
status code:
reason line:
Im Response Header finden sich Informationen über das angeforderte Dokument.
Date: | aktuelles Datum |
Server: | Server-Spezifikation |
MIME Version: | MIME Version |
Content-type: | MIME Typ des Dokuments |
Last-modified: | Datum der letzten Änderung |
Content-lenght: | Länge des Dokuments in Byte |