Aber er hat ja gar nichts an!— Hans Christian Andersen : Des Kaisers neue Kleider
Im Netz kann man auf Webseiten surfen, Informationen suchen, Nachrichten austauschen, Dateien hoch- und herunterladen und mehr. Als dafür genutztes Programm wird meist nur der Webbrowser genannt. Andere Programme (für eMail, Dateiaustausch) kennen die meisten gar nicht. Auch ohne Zutun des Nutzers können Programme "nach Hause telefonieren": Die Uhrzeit des Rechners wird über das Netz abgeglichen, Programme werden aktualisiert.
Für all diese Anwendungen muss es in Netz Maschinen (und Programme) geben, von denen die Informationen abgerufen werden können. Server (Dienstleister) stehen bereit, auf Anfragen von Kunden (Client-Programmen) zu reagieren.
Webbrowser sind Client-Programme, die darauf spezialisiert sind, mit Webservern zu kommunizieren.
Was geschieht nach der Eingabe einer Webadresse wie www.gidf.de (Google ist dein Freund)
in den Browser oder nach dem Antippen eines Links auf einer Webseite?
Es beginnt ein Frage-Antwort-Spiel des Browsers (Client) mit der Gegenstelle (Webserver).
Mit Telnet (in Windows 7 vom Administrator zu aktivieren),
dem Unix-Befehl nc
(Netcat)
oder der für Windows-Nutzer einfacher zu bedienenden
Netzkonsole (Dank an Florian!)
lässt sich dieses nachvollziehen.
Ein "Gespräch" (eine Sitzung) zwischen zwei Maschinen folgt festgelegten Regeln, die einzuhalten sind. Ein Protokoll legt diese Regeln fest. Werden sie von einer Seite nicht beachtet, kann der Abbruch der (diplomatischen) Beziehungen durch die Gegenstelle erfolgen. Achtung! Protokoll ist hier nicht als Niederschrift eines Ablaufs zu verstehen.
Das Hypertext-Transfer-Protokoll (HTTP) dient zur Kommunikation mit einem Webserver. Daneben gibt es viele weitere (siehe Liste_der_standardisierten_Ports), u.a.
Nicht alle Protokolle übermitteln für den Menschen lesbaren Text. Binärcode von Programmdateien und Bildern ist unleserlich, einige Protokolle (HTTPS, FTPS) verschlüsseln den zu übertragenden Inhalt — ganz wichtig ist das beim Übertragen von Passwörtern!
Sowohl zu ganz einfachen wie dem Daytime-Protokoll als auch zu komplexen Protokollen gibt es meist öffentlich einsehbare, genaue Beschreibungen. Für das Internet werden diese als Request for Comments (RFC) bezeichnet. Einige sind auch als Aprilscherz zu werten, so RFC 1149 und RFC 2549 zum Internet-Datenverkehr mittels Brieftauben (Internet_Protocol_over_Avian_Carriers).
Hier steckt keine Zauberei dahinter: Ein Schüler des SRZ Dresden beherrschte fließend HTTP, FTP, SMTP und POP3 (vermutlich auch noch andere, aber bei den erwähnten war ich vor einigen Jahren Augenzeuge). Damit ergibt sich eine interessante Zwischenfrage: Bist du sicher, dass der Webserver, den du gerade besuchst, eine Maschine und kein Lebewesen ist?
Es folgen einige Beispieldialoge, die mit Telnet, netcat oder Netzkonsole nachvollzogen werden können. (Die hellen Kästen stellen die Anfragen dar, die dunkleren die Antworten der Gegenseite.)
In einem Konsolen-Fenster (Windows-Taste+R : cmd) wird mit
telnet www.gidf.de 80
eine Verbindung zum Webserver aufgebaut. Die HTTP-Anfrage entspricht einem Mausklick auf den Weblink www.gidf.de:
GET / HTTP/1.1 Host: www.gidf.de
Nach der abschließenden Leerzeile folgt eine Antwort des Webservers. Sie besteht aus einem Vorspann und dem HTML-Text der Webseite:1)
HTTP/1.1 200 OK Date: Sun, 06 Jul 2008 08:34:45 GMT Server: Apache/2.0.55 (Ubuntu) PHP/5.2.6 X-Powered-By: PHP/5.2.6 Content-Length: 4364 Connection: close Content-Type: text/html; charset=ISO-8859-1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Google ist dein Freund - </title> <link rel="stylesheet" type="text/css" href="http://img.gidf.de/gidf/style.css" /> </head> <body> <h1>Google Ist Dein Freund</h1> <h2>Clevere Leute nutzen Google</h2> <h3>Du scheinst nicht clever zu sein</h3> <p> Jemand ist der Meinung, dass du zu dumm bist, um mit <a href="http://www.google.de">Google</a> zu suchen. Stattdessen nervst du andere Leute damit, für dich zu suchen. Man gab dir diesen Link, um dich genau darauf hinzuweisen. Der Umstand, dass du ihm gefolgt bist, bestätigt das. </p> [ ... leicht gekürzt ... ] </body> </html>
Ein Webbrowser muss diese Antwort nun noch verarbeiten, feststellen, welche weiteren Dateien (Bilder, Stylesheets usw.) zu laden sind, worauf der Inhalt dann auf dem Bildschirm dargestellt wird.
Die Verbindung zum DayTime-Dienst
telnet time-A.timefreq.bldrdoc.gov 13
gibt sofort Antwort, ohne auf die überflüssige Frage "Wie spät ist es?" zu warten:
54653 08-07-06 07:39:29 50 0 0 17.2 UTC(NIST) *
Der SMTP-Dialog verwendet ein zeilenorientiertes Protokoll (Servername wurde geändert):
telnet myserver.de 25
220 myserver.de ESMTP
HELO localhost
250 myserver.de
MAIL FROM: Oval Office <president@whitehouse.gov>
250 ok
RCPT TO: <myaddress@myserver.de>
250 ok
DATA 354 go ahead Mission failed. Take over. .
250 ok 1215339842 qp 22716
QUIT
221 myserver.de
Um dieselbe Nachricht an youraddress@yourserver.com
zu senden, brauche ich nur den Empfänger (RCPT TO) zu ändern…
I don't like SPAM.