Projekte rund um Hard- und Software
 

HTTP

Kommunikation

Dieses Protokoll wird dazu verwendet, Dateien von einem entfernten Rechner (Server) auf den eigenen Rechner (Client) zu übertragen. Tippt man beispielsweise die Adresse www.it-web.info/doku.php in das Adress-Feld eines Browsers ein, dann läuft die Kommunikation folgendermaßen ab:

  • Zuerst muss aus der URL www.it-web.info eine IP-Adresse gewonnen werden. Dies geschieht mit Hilfe der DNS (Domain Name Server). Möchte man die IP-Adresse interessehalber auch wissen, so kann man unter Windows und Linux gleichermaßen den Befehl ping verwenden. Durch ping www.it-web.info kann man die IP-Adresse dieses Servers in Erfahrung bringen.
  • Da nun die IP-Adresse bekannt ist, sendet der Client an den Server die Aufforderung, das Dokument mit dem Namen doku.php zu senden.
  • Die Anfrage hat dabei die folgende Form:
GET /doku.php HTTP/1.1
Host: www.it-web.info
Accept text/plain
Accept text/html
Accept image/jpeg
User-Agent: Mozilla-Firefox
Content-Type:

Zur Erklärung: Das erste Schlüsselwort gibt die Request-Methode an. Es gibt 5 verschiedene Methoden, diese werden weiter unten genauer betrachtet. Danach kommt wird das Dokument angegeben, welches der Client verlangt, in unserem Falle /doku.php. Es wird auch noch mitangegeben, welche HTTP-Version verwendet wird, hier ist es die Verion 1.1. In der zweiten Zeile steht die URI des Servers. Danach werden die Datei-Formate angegeben, die der Client akzeptiert. Es gibt natürlich noch mehr Formate, die akzeptiert werden und nicht nur die hier aufgelisteten.
Der Client schickt dem Server auch noch den Namen des Programms, mit welchem die Anfrage gesendet wurde, hier ist es Mozilla-Firefox. Der Content-Type gibt den Inhalt der Anfrage an und wird in der Form Typ/Subtyp gesendet, also z.B. text/html.

  • Der Header wird durch eine Leerzeile abgeschlossen. Danach sendet der Server seinerseits einen Header an den Client zurück, gefolgt von den eigentlichen Nutzdaten.
  • Der Header des Servers hat die Form:
HTTP/1.1 200 OK 
date  Tu, 20 Sep 200517.40.30 GMT
Server: Apache/2.0.54
Content-Type text/html
Last modified: **********
Client-Date: *****
Client-Peer: *****

HTTP ist ein verbindungsloses Protokoll, die Verbindung wird geschlossen, sobald alle angeforderten Daten übertragen wurden. Das heisst, dass der Client keine Informationen über den Server speichert und der Server keine über den Client. In der Praxis sieht es jedoch häufig so aus, dass auf Cookies zurückgegriffen wird. Dies sind kleine Textdateien, die vom Server auf der Client-Seite gespeichert werden und bei jedem Verbindungsaufbau vom Server abgerufen werden können.

Request-Methoden

Beim HTTP-Protokoll stehen verschiedene Request-Methoden zur Verfügung um Dateien abzurufen, Dateien hochzuladen oder Formulare abzusenden. Es gibt folgende Request-Methoden: die GET-, POST-, HEAD-, PUT-, DELETE-, LINK-, UNLINK-, TRACE- und OPTIONS-Methode, wobei hier nur die GET- und POST-Methode näher betrachtet werden sollen.

GET-Methode

Bei der GET-Methode werden die Nutzdaten einfach an die URL angehängt, getrennt durch ein Fragezeichen.
Der Nachteil dieser Methode besteht darin, dass alle Informationen, die übertragen werden, in der URL unverschlüsselt lesbar sind und man deshalb auf keinen Fall Passwörter oder andere sensible Daten damit übertragen sollte. Ein weiterer Nachteil ist, dass nur eine bestimmte Anzahl von Zeichen übertragen werden können, deshalb eignet sich GET nicht dazu, sehr viele Informationen zu übertragen.
Es können auch nur solche Zeichen übertragen werden, die in einer URL vorkommen dürfen.

POST-Methode

Die POST-Methode dient hauptsächlich dazu, Informationen wie Formulardaten vom Client zum Server übertragen. Die Nutzdaten werden dabei in einem Datensatz gebracht. Der Unterschied zur GET-Methode besteht darin, dass die Informationen nicht über die URL übertragen werden, sondern über den Header. Außerdem gibt es bei der POST-Methode kein Limit der zu übertragenden Zeichen.
Wenn man versucht, POST-Daten ein zweites mal zu übertragen, z.B. durch Aktualisieren der Seite, dann wird von den Browsern im Gegensatz zu GET eine Warnung ausgegeben, da sonst für den benutzer nicht erkannbar ist, dass überhaupt Daten übertragen werden (bei GET sieht man diese in der URL).
Beim Firefox sieht die Warnung folgendermaßen aus:

post.jpg

 
grundlagen/http.txt · Zuletzt geändert: 2009/03/01 20:04 (Externe Bearbeitung)
 
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki