World Wide Web - Grundlagen und Technologie

Aufgabe 3 (HTTP Protokoll)

Manuelle Simulation der Client- und Server-Seite von HTTP

Abgabe bis 14.5.2001


Ziel dieser Aufgabe ist es, die Funktionsweise des HTTP Protokolls kennenzulernen. Dabei soll die Funktionsweise eines Clients und die Funktionsweise eines Servers kennengelernt werden, indem sowohl Requests als auch Responses "von Hand" erzeugt werden.

Aufgabe Tips
1. Im ersten Teil der Aufgabe soll die Funktionsweise eines HTTP-Clients "simuliert" werden. Dazu ist es notwendig, ein Programm zu benutzen, dass es einem Benutzer ermöglicht, auf Stufe TCP mit einem Server zu kommunizieren. Ein solches Programm ist unter Unix standardmässig mit dem telnet Programm verfügbar. Um die Funktionsweise des telnet Programmes kennenzulernen, kann entweder die entsprechende Unix man-page konsultiert werden (die interessanten Parameter dabei sind host und port), oder die Web-Seite der "best viewed with telnet to port 80" initiative, die den Zugriff auf Web-Seiten über telnet zum Standard machen möchte ;-)
2. Im zweiten Schritt der Aufgabe soll die Funktionsweise eines HTTP-Servers "simuliert" werden. Dazu muss ein Programm benutzt werden, dass die Server-Seite einer TCP-Verbindung übernehmen kann, also auch hereinkommende Verbindungen wartet und diese dann akzeptiert. Ein solches Programm ist nicht Teil des Standard-Unix, kann mit dem netcat Programm jedoch frei vom Netz bezogen werden. Das netcat Programm ist unter dem Pfad ~www01_00/nc/ auf den tardis-Rechnern installiert, Ihr könnt es entweder von dort starten, oder zu Euch kopieren und lokal starten. Alternativ könnt Ihr es natürlich auch selber installieren, die Installation ist trivial und verlang ausser dem Entpacken der Distribution nur das Eingeben der Zeile "make solaris".

Die Abgabe der Übung besteht darin, die URL der Seite, welche die Antworten und die aus den Protokollmeldungen extrahierten Daten enthält, an hasan@tik.ee.ethz.ch zu mailen. Die Überprüfung der Übung durch den Betreuer besteht darin, nachzuschauen, ob die Aufgabe korrekt gelöst wurde, d.h. die verlangten Daten von Clients und Servern gesammelt wurden.


Schritt 1 (Simulation eines HTTP-Clients)

Ein HTTP-Client (also z.B. ein Browser) kann am einfachsten mittels des telnet Programmes simuliert werden. Dazu müssen jedoch die Konventionen des HTTP-Protokolles eingehalten werden, da der Server ansonsten eine Fehlermeldung generiert. Welche drei Aspekte des HTTP-Protokolls fallen am meisten auf, wenn es um die Generierung von HTTP "von Hand" geht? (Tip: wichtige syntaktische Aspekte und vom Protokoll als verpflichtend eingestufte Informationen sind hier sicher ganz oben einzuordnen...)

Mit dem gewählten Werkzeug zur HTTP-Client Simulation soll jetzt versucht werden, soviel Information wie möglich über einige Server an der ETH Zürich zu erlangen. Dazu sollen die Server

genauer untersucht werden. Beim letzten Server sollten zudem die URL Pfade howareyou und whoareyou ausprobiert werden. Welche zusätzlichen Informationen erhält man dadurch, wie und warum kommt man an diese heran, und auf welche Art könnte man diese Informationen auch von den anderen Servern erhalten?


Schritt 2 (Simulation eines HTTP-Servers)

Ein HTTP-Server (also z.B. ein Web-Server) implementiert die Server-Seite einer TCP-Verbindung, indem er auf hereinkommende Verbindungen wartet und diese akzeptiert, sobald ein Client eine solche Verbindung aufzubauen versucht. Dieses Verhalten muss mit einem Tool, das für die HTTP-Server Simluation verwendet werden soll, nachgebildet werden. Als erstes muss also herausgefunden werden, wie mit dem gewählten Tool (z.B. netcat) dieses Verhalten erzielt werden kann.

Danach kann das Tool gestartet werden und wartet nun auf hereinkommende Verbindungen. Diese können entweder mit einem Simulatorentool wie dem aus Schritt 1 erzeugt werden, oder von einem regulären Programm, das mit HTTP-Servern zusammenarbeitet, also z.B. einem Web-Browser.

In diesem Teil der Aufgabe sollen die gängigen Web-Browser benutzt werden, um eine Verbindung zu dem Simulatoren-Tool für einen Web-Server aufzubauen. Das Ziel dieser Übung ist es, die Unterschiede in der Benutzung von HTTP zu dokumentieren und zu erklären. Auf den tardis-Rechnern sind Netscape Navigator in verschiedenen Versionen (verfügbar als netscape und communicator in /usr/sepp/bin/), Lynx sowie "Internet Explorer for Unix" (verfügbar als iexplorer) installiert. Alle diese Browser (zumindest die verschiedenen Major Version Numbers) sollen ausprobiert werden und die Unterschiede in der Verwendung von HTTP sollen Dokumentiert und erklärt werden, und zwar in einer HTML-Tabelle auf der Lösungsseite der Aufgabe, die für die Lösung der Aufgabe erstellt werden muss.

Die Tabelle sollte sinnvollerweise als Matrix aufgebaut sein, die auf einer Achse die untersuchten Browser auflistet, und auf der anderen Achse verschiedene HTTP Features, wie z.B. Header Fields. In den Feldern der Matrix sollte dann jeweils vermerkt sein, ob und/oder wie das entsprechende Feature vom jeweiligen Browser verwendet wird. Es müssen naürlich nicht alle möglichen HTTP Features (wie die ca. 70 Header Fields...) aufgelistet werden, sondern nur die für die untersuchten Fälle relevanten.

Falls möglich, sollten auch noch andere Browser in dieser Tabelle dokumentiert werden, z.B. auf anderen Plattformen (Windows und/oder Macintosh) oder andere Produkte (z.B. Opera oder historisches wie XMosaic, falls den noch jemand finden kann...).


please send comments to www-vl@dret.net
last modification on Monday, 28-May-2001 14:16:23 CEST
valid CSS!valid HTML 4.01!