
|
|
HTTP
Das HTTP (Hyper Text Transfer Protocol) bildet die technische Grundlage des
World Wide Web. Serverseitig wird das Protokoll von einem WWW-Server
abgearbeitet. Dieser hat - meist in einem gewöhnlichen Verzeichnis - Dateien
gespeichert, die er per HTTP zum Download anbietet. Es ist auch möglich,
einzelne Verzeichnisse als Programmverzeichnisse auszuweisen (cgi-bin). Wird
eine Datei aus einem solchen Verzeichnis abgerufen, erhält der Client nicht
die Datei. Anstelle dessen wird die Datei als Programm gestartet und der
Client erhält die Ausgabe, die das Programm produziert. So können interaktive
Anwendungen entstehen, indem beispielsweise Eingaben in ein Formular
ausgewertet werden und die Antwortseite dann direkt auf die Angaben Bezug nimmt.
Der WWW-Client wird normalerweise "Browser" genannt. Ursprünglich war hier
Netscape mit dem Navigator / Communicator marktführend. Mittlerweile ist
jedoch Microsofts Internet Explorer in dieser Rolle. Nach wie vor gibt es
auch Alternativen zu diesen beiden: Die Open-Source-Variante "Mozilla" von
Netscape, den kommerziellen Browser "Opera" oder auch "Konqueror" (unter
Linux mit KDE-Oberfläche). Allen Browsern gemein ist ein Texteingabefeld am
oberen Fensterrand, in das man eine "URL" (Uniform Ressource Locator)
eintragen kann. Diese hat das Format:
<protokoll>://<hostname mit domain>/<pfad>/<dateiname>
Für den Abruf einer Webseite trägt man als Protokoll "http" ein. Der Browser
wertet dann den Hostnamen aus und ermittelt daraus per DNS die IP-Adresse des
Servers. Den Rest der URL übergibt er dem HTTP-Protokoll.
Es gibt zwei Versionen des HTTP - 1.0 und 1.1, wobei 1.0 zunehmend verschwindet.
Sie unterscheiden sich im wesentlichen darin, dass HTTP 1.0 für jede einzelne
Datei, die es abruft, eine eigene TCP-Verbindung aufbaut und nach dem Download
sofort wieder schließt. Für eine einzige Webseite mit fünf Bildern werden (je
nach Client nacheinander oder gleichzeitig) folglich sechs TCP-Verbindungen
auf- und wieder abgebaut. Bei HTTP 1.1 wird eine einmal geöffnete Verbindung
gehalten - bis der Client entweder einen anderen Server ansteuert oder ein
Timeout erreicht wird. Es gibt auch keine parallelen TCP-Verbindungen mehr.
Allerdings gibt es das Verfahren des Pipelining, bei dem der Client alle
gewünschten Dateien hintereinander angibt und diese werden dann quasi
"nahtlos" nacheinander vom Server über die eine TCP-Verbindung geschickt.
Ohne Pipelining würde eine Datei übertragen und erst nachdem sie vollständig
empfangen wurde, könnte die nächste angefordert werden.
Bei HTTP wiederholen sich immer zwei Arbeitsschritte: Zuerst sendet der
HTTP-Client einen HTTP-Request an den Server. Dieser beantwortet ihn durch
einen HTTP-Reply, der typischerweise die angeforderten Daten enthält. Die
Header sowohl vom Request als auch vom Reply sind in Textform gehalten und
damit problemlos lesbar. Das ermöglicht die manuelle Bedienung des HTTP über
einen Telnet-Client zu Test- oder Diagnosezwecken.
|
|