Theorie
 
 
 
 
 
Computertechnik
 
 
 
 
 
.. Stichwort: HTTP -Protokoll
 
 
 
 
 

 
 
 
 

 

HTTP bedeutet HyperText TransferProtocol. Es baut auf dem TCP/IP Protokoll auf. Dieser Übertragungsformalismus wird im Internet dazu benutzt, um Daten zwischen zwei Computern auszutauschen. Normalerweise bestehen die ausgetauschen Daten aus HTML-Seiten, also Textdokumenten, die über die Dokumentensprache Hypertext Transfer Markup Language formatiert wurden. Allerdings ist es auch möglich beliebige andere Daten über das HTTP-Protokoll zu übertragen. So .txt oder .doc Textdateien, .gif, .jpg .. Bilder .mpeg Musik- oder Videodateien oder was es sonst noch an Dateiformaten gibt.

Dem Empfänger dieser Daten muss natürlich der Inhalts-oder Mimetyp der zurückgesendeten Dateien angegeben werden, da es beispielsweise keinen Sinn macht, Musikdateien auf einen Bildschirm auszugeben. Unter dem Stichwort Mime-Typen befindet sich eine Liste möglicher Übertragungsformate.

Über das HTTP-Protokoll sind grundsätzlich zwei Computer miteinander verbunden. Den Computer, der Daten von dem anderen Computer erhalten will, nennt man Client. Der Computer, der die Daten senden soll, ist der Server.
Zunächst richtet der Client eine Nachfrage (einen Request) an den Server, worauf dieser mit einer Antwortmeldung (einer Response-Message) reagiert. Dann bricht die Verbindung zwischen beiden Computern ab. Diesen Umstand, dass nach einem einmaligen Frage- Antwortspiel beide Computer wieder voneinander getrennt werden und nichts mehr voneinander wissen, bezeichnet man als stateless. Das HTTP-Protokoll ist also ein zustandsloses Protokoll, wenn man den Begriff direkt übersetzt. (Technologien, die eine dauerhafte Verbindung ermöglichen sind allerdings inzwischen dem HTTP-Protokoll hinzugefügt worden. Sie werden aber bei der typischen HTTP-Verbindung nicht genutzt)

Die beiden zwischen den Computern ausgetauschten Nachrichten ..Request und Response.. bestehen beide aus Textzeilen, die jeweils durch die ASCII-Zeichen CRLF (Carriage Return / Linefeed - 0Dh 0Ah) getrennt werden. Sowohl der Request, die Nachfrage, als auch die Response, die Antwort, lassen sich beim HTTP-Protokoll in drei Teile zerlegen.
  1. eine Request/Response-Line <CRLF>
     
  2. optionale Request/Response-Header <CRLF>
    und durch eine Leerzeile getrennt <CRLF>
     
  3. ein optionaler Body, mit den gewünschten Entitys, den Daten. Diese können aus ASCII-Text oder Binärcode bestehen. ..

 

 

 

 

 

Die Req/Resp-Line zusammen mit den Req/Resp-Headern bezeichnet man als Header. Die Leerzeile ergibt sich durch zwei hintereinander folgenden <CRLF>-Paaren, dann folgt der Body.

 

 

 

 

 

Beispiel für eine Request -Message
.. die sich an den Server checkip.dyndns.org wendet und dessen Ressource (die eigene IP-Adresse im html-Format) nachfragt. ...

 

 

 

 

 

GET /http://checkip.dyndns.org/ HTTP/1.0\r\n
Accept: image/gif, image/jpeg, */*\r\n
Accept-Language: de\r\n
Accept-Encoding: gzip\r\n
User-Agent: Mozilla/4.0\r\n
\r\n

 

 

 

 

 

Beispiel einer Response -Message
Die Antwort des obigen Servers auf den Request, bei dem der (Daten-) Entity-Body verkürzt wiedergegeben ist.

 

 

 

 

 

HTTP/1.0 200 OK\r\n
Server: Cherokee/0.4.6\r\n
Pragma: no-cache
\r\n
Cache-Control: no-cache\r\n
Content-Type: text/html\r\n
Connection: close\r\n
\r\n
<HTML><HEAD><TITLE>...</TITLE>

 

 

 

 

 

Beachtenswert ist, dass die Req/Resp-Header jeweils aus Variablenname und Variablenwert bestehen, die beide durch einen Doppelpunkt getrennt werden. In der Folge wäre nun zu klären, aus welchen Elementen die Startzeile besteht, sowie welche Variablen in den, auf sie folgenden Headerzeilen, genannt werden können.

 

 

 

 

 

Tools
Mit einem Netzwerkmonitor-Programm lassen sich die Request- und Response-Nachrichten mitverfolgen. Wie man an einen solchen Monitor gelangt, klärt die Seite .. Netzwerkmonitor.

 

 

 

 

www..de