Grundlagen was passiert beim "surfen"

Grundlagen: Was passiert beim “surfen”?

Es handelt sich hier nicht um eine Darstellung bis ins letze Detail. Sie ist für den interessierten Laien gedacht, der einen Überblick über die Funktionsweise des Internets erhalten soll. Das Internet ist ein Kommunikationsmedium mit verschiedensten Diensten und Kanälen. Einer davon, den wohl neben der E-Mail am meisten genutzen - das World-Wide-Web (www) dient hier als Beispiel.

Es handelt sich hierbei um eine Arbeitsversion. Anregungen und Korrekturen nehme ich sehr gerne via E-Mail entgegen.

Die Adresse (URL)

Zuerst einmal schauen wir uns die Adressleiste des Browsers an. Wir sehen die Adresse dieser Seite, auch URL (Uniform Resource Locator) genannt:

http://www.toke.de/artikel/grundlagen/was-passiert-beim-surfen/ Der Webbrowser zerlegt diese Zeichenkette in ihre logischen Bestandteile: http Definiert das Protokoll - hier http (HyperText Transmission Protocol) andere übliche Protokolle sind https - hierbei wird der Datenverkehr verschlüsselt übertragen und ftp. Das Protokoll gibt an wie sich der Rechner des surfenden Benutzers (Client) und der des Anbieters der Seite (Server) “unterhalten”. Für den Anwender ist es im Endeffekt egal wie die Daten übertragen werden - Hauptsache sie kommen an. Interessant ist es jedoch wieder wenn https verwendet wird hierbei wird der Datenverkehr verschlüsselt, ein Mitlesen anderer ist nahezu ausgeschlossen. Gerade beim Online-Banking und Einkauf ist dies Wichtig! Um https verwenden zu können muß sowohl der Server als auch der Browser des Benutzers dies unterstützen - dies ist auf Serverseite leider viel zu selten der Fall. Di

http://www.toke.de/artikel/grundlagen/was-passiert-beim-surfen/ Hierbei handelt es sich um den sogenannten Domainnamen bzw. Hostnamen. Dieser ist eine menschenlesbare Adresse des Servers, den man zu erreichen wünscht. Oft ist es so, dass sich unter vielen verschiedenen Adressen ein und derselbe Rechner meldet, so ist in diesem Fall toke.de und thomas.kerpe.info derselbe Rechner und führt zur selben Startseite. Eine genauere Betrachtung von Domainnamen folgt später.

http://www.toke.de**/artikel/grundlagen/was-passiert-beim-surfen/** Der Pfad und Dateiname der aufzurufenden Seite oder Datei. Sollte diese nicht im Hauptverzeichnis (ROOT-Verzeichnis) liegen befinden sich vor dem Dateinamen noch die Pfad-Angaben z.B. http://www.toke.de/artikel/grundlagen/was-passiert-beim-surfen/. Zu Beachten gilt, dass es sich bei den Trennzeichen zwischen den Rechner, Pfad und Dateiangaben um einen einfachen “Slash” also Schrägstrich (/) handelt. Unter Windows ist der Trenner der Pfadangaben ein sog. “Backslash” also ein umgekehrter Schrägstrich (). Sollte dieser versehentlich eingegeben werden führt das im Großteil der Fälle zu einer unauffindbaren Seite. Da es sich bei einem Großteil der Internet-Server nicht um Windows sondern um Unix-Syteme handelt gelten einige Regeln, die man von Windows kennt nicht - andere kommen dazu. So ist zum Beispiel beim Großteil der eingesetzten Systeme so, daß Sie zwischen Groß und Kleinschreibung unterscheiden. “Artikel/Grundlagen/was-passiert-beim-Surfen/” und “artikel/grundlagen/was-passiert-beim-surfen/” sind also verschiedene Adressen!

Anmerkung: In der Realität handelt es sich meistens nicht um den tatsächlichen Pfad oder Dateiname einer “Resource” sondern lediglich einen innerhalb der Domain eindeutigen Bezeichner. Eine URL kann noch aus weiteren Teilen bestehen: Anker oder Fragment (z.B. http://www.toke.de/artikel/grundlagen/was-passiert-beim-surfen/#domainnamen und Query-Strings (z.B. http://www.google.de/?q=bing). URL ist in RFC 1738 definiert.

Domainnamen

Das Domain Name System (DNS) ist ein Dienst im Internet, der dafür sorgt, dem Anwender die Möglichkeit zu geben Domainnamen einzugeben. Geschieht dies muss der Computer zuerst den eingegebenen Namen in eine IP-Adresse auflösen. Wie bereits erwähnt werden im Internet Domainnamen eingesetzt um dem Anwender die Arbeit zu erleichtern, denn ein Domainname wird vom Computer in eine IP-Adresse umgewandelt. Dies macht die Anwendersoftware automatisch.

Der Domainname ist hirarchisch aufgebaut und durch “.” Punkte (Englisch “dot”) getrennt. Der Computer liest den Domainnamen rückwärts - fängt also in unserem Beispiel bei “de” an. Es handelt sich hierbei um die Toplevel-Domain (TLD) also der gröbsten Adresszuordnung. Es gibt eine Vielzahl dieser Topleveldomains - so besitzt jedes annerkannte Land eine. Für allgemeingültige Domains - also Domains die keinem Land zugeordnet werden gibt es sogenannte “Generische TLD’s” wie “net”, “com”, “org”. Eine komplette Liste aller Länderdomains findet man bei der verwaltenden Stelle IANA.

Der 2. Teil des eingegeben Namens ist der eigentliche Domainname. Er gehört einer Person oder einer Gesellschaft. Und wird bei einer Registratur (für “de” ist das die DENIC eG) eingetragen. Einzeleinträge nimmt die DENIC normalerweise nicht vor - aus diesem Grunde werden Domainnamen von Webhostern bei der DENIC angemeldet. Der Besitzer der Domain muss aber der Endkunde sein! Zu jeder Domain wird in einer öffentlichen Datenbank (WHOIS) der Kontaktdatenbestand des Domainbesitzers und des Betreibers gespeichert. Jeder kann also den Inhaber einer Domain ermitteln. Fast jede Registratur hat eine eigene Datenbank. Abfragen von “de”-Domains kann man über ein Webformular der DENIC durchführen.

Die folgenden Einträge oft “www” werden Subdomain oder Hostname genannt. Ich schreibe “Einträge” weil dies auch sehr tief verzweigt sein kann. So ist “www-ibt.etec.uni-karlsruhe.de” ein gültiger Domainname. Korrekt gesprochen ist “www-ibt” der Host oder auch Rechnername, “etec” die Subdomain, “uni-karlsruhe” der Domainname und “de” die Top-Level-Domain

Wir wissen nun, wie ein Domainname aufgebaut ist. Der Computer zerlegt in also in seine Bestandteile und kann nun - vereinfacht ausgedrückt - eine Anfrage bei den Domainservern - eine Art Adressbuch - durchführen. Sollte die Domain so wie sie eingegeben ist in den Datenbeständen verfügbar sein, so gibt der Domainserver dem Anwenderprogramm eine sog. IP-Adresse zurück unter der der gewünschte Server erreichbar ist. Wenn also kein genau passender Eintrag in den Domainservern hinterlegt ist, kann die gewünschte Seite nicht aufgerufen werden. Meist verweisen mehrere Domaineinträge auf die selben Adressen. Es kann also schon ein Unterschied sein, ob man “www.toke.de” oder “toke.de” eingibt.

Ermitteln der IP-Adresse: Die Namensauflösung kann man manuell durchführen: ein Terminal/Shell aufmachen und dann folgendes eingeben: “nslookup www.toke.de”. Sie erhalten nun die IP-Adresse des Servers.

IP-Adressen

Wie im Kapitel “Domainnamen” genauer beschrieben wird ein großer Aufwand getrieben um die vom Benutzer eingegebenen Adressen in IP-Adressen umzuwandeln. IP-Adressen sind eindeutige numerische Kennungen von Computern. Sowohl der Rechner, den Sie zu erreichen wünschen, als auch der eigene haben eine solche Adresse. Sie ist zwingend notwendig um eine Kommunikation im Internet zwischen zwei Rechnern zu ermöglichen.

Eine IP-Adresse besteht in der üblichen Schreibweise aus 4 durch Punkte getrennte Zahlenblöcken zwischen 0 und 255. So ist 207.46.249.27 zum Beispiel eine IP-Adresse die zu dem Domainnamen www.microsoft.com gehört.

Neben den herkömmlichen IP-Adressen (IPv4 oder IP Version 4), die sich durch 4 durch Punkte getrennte Zahlenblöcken im Bereich vom 0-255 auszeichen, gibt es den verspäteten Nachfolger, IPv6 bzw IP Version 6. Eine IPv6-Adresse sieht, wie am Beispiel von toke.de, so aus: 2a01:4f8:100:14a5::3. Diese ist jedoch nur relevant wenn man selbst eine IPv6-Verbindung hat, also der eigene Rechner selber über IPv6 auf das Internet zugreifen kann.

Datenübertragung mit HTTP

Nachdem Sie eine Adresse in den Webbrowser eingegeben haben, wird er die IP-Addresse ermitteln und im Anschluß eine Netzwerkverbindung zu besagter Adresse aufbauen. Sollte dies funktionieren wird der Webserver das angeforderte Dokument an den Anfragenden schicken. Im Fehlerfalle wird eine entsprechende Seite angezeigt. Meist enthaltern diese Fehlerseiten einen standardisierten Fehlercode. Der Webbrowser weiss nun im Idealfall, was er mit den empfangenen Daten zu tun hat. Entweder er zeigt sie an - zum Beispiel Bilder oder Dokumente - oder er fragt wo er sie Speichern soll.

HTTP-Status-Codes

Eine Liste der üblichsten Status- und Fehlercodes wie sie im HTTP-Standard festgelegt sind. Dies ist nicht zu verwechseln mit Fehlern, die von Programmen auf der Serverseite erzeugt wurden!

Die Fehler - oder auch Statuscodes sind in der Regel dreistellige Zahlen. Diese sind standardisiert und nach “Schwere”. Definiert sind:

  • 1xx - kein Fehler - Informationen für den Browser - wird nicht angezeigt
  • 2xx - kein Fehler - Erfolgsmeldungen - Jede erfolgreich aufgerufene Seite erzeugt eine 2xx Meldung
  • 3xx - kein Fehler - Umleitungen - kann möglicherweise dem Benutzer angezeigt werden
  • 4xx - Clientfehler - Diese Art von Fehlern sind durch den Client entstanden z.B. eine Ungültige Anfrage gesendet.
  • 5xx - Serverfehler - Hier hat der Server einen Fehler ausgelöst.

“Häufige Fehler”

Im folgenden sind einige häufiger angezeigte Fehlercodes mit Erklärung aufgeführt

300 Multiple Choices (Status) Es wurden mehrere Dokumente gefunden, die zu ihrer Anfrage passten - zum Beispiel liegt das Dokument in mehreren Sprachen vor. (Recht selten)

400 Bad Request (Fehler) Ihr Webbrowser hat eine Anfrage an den Webserver geschickt, die dieser nicht versteht. Normalerweise können Sie dies nicht beheben.

403 Forbidden (Fehler) Es handelt sich hierbei entweder um eine fehlgeschlagene Benutzerautentifikation (Passwortabfrage) oder der Seitenbetreiber hat den gewünschten Bereich nicht freigegeben.

404 Not Found Der wohl häufigste Fehler. Hierbei handelt es sich schlicht um eine nichtexistente Datei oder ein Verzeichnis. Eventuell haben Sie sich bei der Adresseingabe vertippt oder die Adresse hat sich geändert.

500 Internal Server Error Hier hat der Server selbst einen Fehler verursacht - zum Beispiel durch ein Serverseitiges Programm - und kann ihre Anfrage nicht beantworten

Es gibt noch eine ganze Reihe weiterer Fehler und Statuscodes, jedoch sollte der Benutzer diese seltener oder nie zu Gesicht bekommen.

Eine Vollständige Liste der spezifizierten Status Codes kann im RFC 2616 nachgelesen werden.