Aufbau und Architektur

Das HTTP Protokoll


... [ Seminar WWW und JAVA ] ... [ Thema HTTP ] ... [ HTTP Sicherheit ] ...

Inhalt


Das HTTP-Protokoll - Basis des WWW

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.


Typischer Kommunikationsablauf in HTTP


Der Request Block

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 Parameter: Method

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:

GET:
weist den Server an, das Objekt unabhängig vom Format zu schicken.
HEAD:
weist den Server an, nur den HTTP-Header zu schicken.
PUT:
Die im Datenteil vorhandenen Daten sollen vom Server unter der angegebenen URL abgespeichert werden. Dies setzt natürlich geeignete Berechtigungen voraus.
POST:
Erzeugt ein neues Objekt, welches über einen Link zum spezifizierten Objekt in Beziehung gesetzt wird und diesem untergeordnet ist. POST wird z.B. verwendet, um die Eingaben eines Formulars einem externen Programm zu übergeben.


Der Parameter: URL

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


Der Parameter: ProtocolVersion

Ü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.


Der Parameter: HTRQ Header

Ü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 MIME-Typ im Accept-Feld

Der Client signalisiert dem Server welche Formate er akzeptiert.

text/plainTextdateien
text/htmlHTML-Seiten
image/gifGIF-Bilder
application/x-zip-compressedZIP-Dateien
*/*alle Formate

Aufgrund der Leistungsfähigkeiten heutiger Browser wird zumeist der MIME-Typ */* verwendet, da nahezu alle Formate verarbeitet werden können.


Der Parameter: Data


Der Response Block

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>


Der Parameter: status line

Die status line besteht aus folgenden Komponenten:

http version:

status code:

reason line:


Der Parameter: Response Header

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


... [ Seminar WWW und JAVA ] ... [ Thema HTTP ] ...[ HTTP Aufbau ]... [ HTTP Sicherheit ] ...