http Hypertext Transfer Protocol

So komplex Webseiten auch sein mögen, der Transport der Daten ist vergleichsweise einfach gestrickt. Der Browser sagt zum Server „Gib mir die Seite xy“ und der Server tut, was ihm befohlen wurde. Schlimmstenfalls kommt es zu einer Fehlermeldung „404 Seite nicht gefunden“, wenn ein schlampiger Webmaster eine Seite umbenannt hat.

Es gibt mehrere Kommunikationsmöglichkeiten mit dem Server, von denen http und https die häufigsten sind. In den modernen Browsern muss man das http oder das https nicht mehr eingeben, sie ergänzen das von selbst.

Mehr noch; gibt man den Anfang einer bereits benutzten Web-Adresse ein, wir in einem Vorschaufeld bereits angezeigt, was das sein könnte und meist muss man nur wenige Buchstaben eingeben und dann auf Return drücken, um die Seite anzuzeigen. Klickt man aber auf Tabulator, bieten die Browser an, die gewünschte Seite zu durchsuchen, was auch recht praktisch sein kann.

Das http-Protokoll (Hypertext Transfer Protocol)? ist im Prinzip extrem einfach aufgebaut. Damit man es sehen kann, muss man den Server so ansprechen, wie das der Browser auch tut: als Telnet-Client auf Port 80. Ein Telnet-Client ist wie ein Terminal, er sendet und empfängt Zeichen und zeigt sie in einem typischen Terminal-Fenster an. Der Unterschied zum Terminal ist, dass die Zeichen bei Telnet nicht über eine serielle Schnittstelle sondern über eine TCP/IP-Verbindung gesendet werden. Für diesen Test benötigt man das Programm Putty (http://www.putty.org/) oder eine Online-Version von Telnet, zum Beispiel http://telnet-online.net/.

Es gibt einen kleinen Befehlsvorrat. Die drei wichtigsten Befehle sind GET, POST, HEAD. Gibt man also in der Adresszeile eines Browsers eine Url (http://fiala.cc/) ein, dann erzeugt der Browser daraus einen GET-Befehl und stellt ihm den Hostnamen in einer zweiten Zeile nach

…und beendet diese Zeichenfolge mit zwei CR-LF. Das ist für den Server der Hinweis, dass die Kommandoeingabe beendet ist und er führt den Befehl aus und sendet die Seite / (=Startdokument) an den Client zurück. Das ist in der Regel eine HTML-Seite, kann aber auch ein Bild oder ein StyleSheet oder ein JavaScript-Programm oder ein Video sein. Jetzt wird vom Server der komplette Text dieser Seite gesendet, so wie ihn auch der Browser sieht.

Da diese Textmenge hier nicht darstellbar ist, hier noch ein anderer Befehl: „HEAD“:

In diesem Fall werden nur die Kopfzeilen zurückgeliefert, die der Server vom Client mitteilt.

Es geht hier nicht darum, die weiteren Details des http-Protokolls aufzuzählen, sondern nur den Dialog zu zeigen, der sich hier ereignet, wenn wir eine Adresse am Browser anwählen.

Im folgenden Beispiel sieht man, wie der Server eine angeforderte Datei an den Client zurück sendet (Quelle: Wikipedia):

Die Seite www.perdu.com existiert wirklich und liefert wirklich diese Seite zurück.

Während bei einem GET-Befehl alle Parameter beim Aufruf in einer Zeile mitgesendet werden, muss man sie bei POST in weiteren Zeilen übergeben. Alle Links im Internet basieren auf dem GET-Befehl. Die allermeisten Formulare arbeiten dagegen mit POST, weil man mit POST praktisch keine Einschränkungen wegen der Länge der Parameter hat.

Als Betrachter von Webseiten sind diese Details unbedeutend. Wenn man aber auf der eigenen Seite ein Antwortformular anwendet, muss man aber den Unterschied zwischen GET und POST eventuell berücksichtigen.

 

Zur Werkzeugleiste springen