Geschichten von früher: das Internet
Fangen wir ganz am Anfang an. Das Internet enstand als „ARPANET“ 1969, als das US-Verteidigungsministerium beschloss, ein landesweites Computernetzwerk aufzubauen. 1983 wurde TCP/IP als Übertragungsprotokoll für das Internet festgelegt und das Milnet spaltete sich als militärischer Ableger ab. TCP/IP ist ein sogenanntes „Protokoll“, eine Vorschrift, wie Daten zwischen Rechnern übermittelt werden. Protokolle werden uns weiter unten nochmal begegnen.
Wichtig ist auch folgender Punkt: der Begriff „Internet“ bezeichnet ein globales Computernetzwerk, das andere, unabhängige Netzwerke verbindet. Der Begriff hat vorerst nichts mit WWW, Web, E-Mails, HTML oder dergleichen zu tun. Zu diesen Sachen kommen wir gleich. Internet in der Wikipedia nachlesen
Unterscheide „Net“ von „Web“.
Dienste im Netz - Salz in der Suppe
1989 entwickelte Tim Berners-Lee am CERN in Genf das WWW als Möglichkeit, wissenschaftliche Daten leicht zugänglich zu machen. Der Name beschreibt ein über das Internet zugängliches System an Hypertext-Dokumenten. Das WWW oder Web ist also nichts anderes als die Sammlung aller HTML-Dateien (HTML steht für Hypertext Markup Language) im Internet zusammen mit einem neuen Protokoll, zu dem wir gleich noch kommen.
Hypertexte sind netzartige Texte, die nicht linear, wie z.B. ein Buch, gelesen werden, sondern in denen man von Stelle zu Stelle springen kann. Um das zu ermöglichen, gibt es in HTML Links. Damit ähneln Hypertexte eher Wörterbüchern oder Enzyklopädien.HTML nachlesen in der Wikipedia oder bei SelfHTML
E-Mail gibt es schon etwas länger. Im Prinzip wurden über das Netzwerk schon kurz nach seiner Entwicklung Nachrichten ausgetauscht. E-Mails entwickelten sich ab 1971, 1984 wurde die erste Mail nach Deutschland geschickt.
WWW und E-Mail sind Dienste im Internet.
Adressen, Briefe und wie man sie zustellt
Die Adressen, die wir heute in unsere Browser tippen (z.B. http://www.manuel-strehl.de ), heißen im Fachjargon URI (für Uniform Resource Identifiers). Sie werden benutzt, um im Internet Ressourcen zu bezeichnen. Dabei können sie auf so unterschiedliche Objekte wie E-Mail-Adressen, Webseiten, Telefonnummern, Bilder und Videodateien zeigen. Alle URIs haben einen festen Aufbau: Zuerst kommt der Name eines Schemas, des verwendet wird, gefolgt von einem Doppelpunkt. Dann folgt, abhängig vom verwendeten Schema, die eigentliche Adresse. Das Schema definiert dabei, wie das Folgende auszuwerten ist. Man kann es sich wie Postleitzahlen vorstellen: Jedes Land hat sein eigenes System. Genau so hat jedes Schema sein eigenes System, um auf Ressourcen zu verweisen.URI nachlesen in der Wikipedia
Schauen wir uns eine typische Webadresse an: http://www.manuel-strehl.de. Wenn wir das oben gesagte hier anwenden, sehen wir, dass das Schema „http“ heißt und die bezeichnete Adresse „//www.manuel-strehl.de“.Gelegentlich liest man auch von einer URL. Hierbei handelt es sich um eine spezielle (und die wichtigste) Art von URIs. Alle Webadressen gehören zu dieser Gruppe.
HTTP steht für Hypertext Transfer Protocol (aha, hier taucht das Protokoll wieder auf) und ist also eine Übertragungsvorschrift für Hypertext. Es gibt viele weitere Schemata, die im Netz Anwendung finden. Die wichtigsten sind HTTPS (sicheres, verschlüsseltes HTTP), FTP (Übertragung von Dateien), mailto (E-Mail-Adressen) und file (Ressource liegt auf der eigenen Festplatte). Auch Instant Messenger wie ICQ benutzen ein eigenes Schema, um Teilnehmer im Netz anzusprechen.
HTML ist eine Auszeichnungssprache, die verwendet wird, um HTML-Dateien zu erstellen. HTTP ist ein Übertragungsprotokoll, das verwendet wird, um Daten über das Internet zu verschicken.HTTP nachlesen in der Wikipedia
Betrachten wir also HTTP genauer. Neben E-Mails ist das Web (die
Sammlung von HTML-Dokumenten) heute wichtigster Bestandteil des
Internet, und HTTP läuft
uns am Häufigsten über den Weg. Wir haben als Adresse oben
„//www.manuel-strehl.de“ identifiziert. Die beiden Schrägstriche
werden von HTTP
vorgeschrieben. Sie sagen nichts anderes als „Achtung! Hier beginnt die
Adresse
“. Es bleibt also „www.manuel-strehl.de“ übrig. Weil Browser fast nur
HTTP verwenden, und dort
jede Adresse mit // anfängt, lassen alle modernen Browser es zu, dass man das
„http://“ vor der Adresse wegläßt. Vorsicht ist
nur geboten, wenn man das Schema wechselt. Dies kommt besonders dann vor, wenn
man Online-Banking-Seiten besucht. Diese Seiten sind verschlüsselt, was man an
dem Schema „https“ erkennt. Hier muss man tatsächlich die gesamte
Adresse eingeben, wenn man die gewünschte Seite aufrufen will.
Dateien und Ordner in UNIX
Vieles von dem, was nun für die Adressen im Web gesagt wird, stammt aus der UNIX- und Linux-Welt. Das hängt damit zusammen, dass das Betriebssystem UNIX und das Internet parallel entwickelt wurden. Also machen wir einen kleinen Abstecher zum Aufbau des UNIX-Dateisystems.UNIX ist, wie Windows, ein Betriebssystem. Es wurde Anfang der 70er Jahre entwickelt und ist besonders in der Wissenschaft weit verbreitet. Auf den Prinzipien von UNIX basiert wesentlich das mittlerweile bekanntere Betriebssystem Linux.
Bleiben wir noch kurz beim gewohnten Windows. Wenn man den Windows
Explorer startet (oder auf „Arbeitsplatz“ klickt), erscheint unter
anderem eine Adressleiste, in der man erfährt, wo man sich aufhält. Die Adresse
kann z.B. so aussehen: „C:\Programme\Firefox\“. Das heißt, man
befindet sich auf Laufwerk „C“ im Ordner „Programme“ und dem Unterordner „Firefox“. Das „\“ trennt dabei die Ordner
voneinander.
Wir haben oben festgestellt, dass das Schema „file“ Objekte auf der Festplatte bezeichnet. Öffne den Windows Explorer und gehe in einen beliebigen Ordner. Kopiere den gesamten Namen des Ordners (den sog. Pfad) aus der Adresszeile (z.B. durch Drücken von Strg+V) und gib im Browser „file://“ und den kopierten Namen ein. Du siehst das Verzeichnis dann im Browser aufgelistet.
Man kann auf diese Art auch das mailto-Schema testen. Gib in der Adressleiste des Browsers „mailto:“ und eine beliebige E-Mail-Adresse ein. Jetzt sollte ein E-Mail-Programm starten, das dir erlaubt, eine E-Mail an die angegebene Adresse zu schicken.
Die Rolle des „C:“ wird in UNIX, grob
gesprochen, von „/“ übernommen. Das ist das
unterste Verzeichnis. Ein Pfad, also der Weg, den man von / aus in Unterordner geht, sieht dann vielleicht so aus:
„/programme/firefox/“. Das bedeutet nichts anderes als: Gehe von
/ aus in den Ordner „programme“ und von dort in den Unterordner „firefox“. Man erkennt, dass das Windows-\ in der UNIX-Welt / heißt. Es
sei noch gesagt, dass es wichtig ist, auf Groß- und
Kleinschreibung zu achten. Die Ordner „Programme“ und „programme“
sind unter UNIX verschieden (nicht unter Windows).
Namen für Computer
Zurück zu unseren Adressen. Wir haben also noch „www.manuel-strehl.de“ übrig. Dieser Ausdruck ist
nichts anderes als der Name eines speziellen Computers im Internet.
Wir wollen diesen Computer kontaktieren, damit er uns irgendwelche Daten
schickt. Wie das genau geht, ist Sache der Protokolle (also in unserem Fall
TCP/IP und HTTP). Es muss uns nicht weiter interessieren. Diese
Computer nennen wir Server, weil sie uns die Webseiten „servieren“
sollen. Unser Rechner, mit dem wir surfen, heißt Client. Die Adresse,
die sogenannte Domain, setzt sich aus drei durch Punkte getrennten
Bestandteilen zusammen: „www“, „manuel-strehl“ und „de“. Um
diese Adressen zu lesen fangen wir hinten an.Manchmal liest man auch die Bezeichnung
Host (engl. Gastgeber). Sie wird oft gleichbedeutend
mit „Domain“ verwendet, bezeichnet aber üblicher Weise eher den physikalischen, echten Computer, der
als Server arbeitet. Ein Host kann mehrere Domains haben.
Das „de“ ist die sogenannte Top Level
Domain (kurz TLD). Sie
bestimmt, in welchem Bereich die Webseite anzusiedeln ist. Dabei steht „de“ für Deutschland. Bekannt sind vor allem „net“, „com“ (für
commercial) und „org“ (für organization).
Außerdem hat jedes Land seine eigene TLD.
fr steht für Frankreich, uk für United Kingdom, by für Weißrussland (d.h., die Betreiber von www.bayern.by mussten ihren Vertrag auf russisch aufsetzen…) und tv für (nein, nicht für Television) Tuvalu, eine kleine und mittlerweile deutlich reichere Inselgruppe im Pazifik.Alle TLDs in der Wikipedia
Dann folgt in unserer Domain „manuel-strehl“.
Dieser und alle folgenden Teile dürfen alle Buchstaben von a bis z, Ziffern von
0 bis 9 und das „-“ enthalten. Es wird nicht zwischen Groß- und
Kleinschreibung unterschieden.
Die Adressen WWW.Mercedes.de, www.mercedes.de und wWw.MeRcEdEs.De führen alle zu demselben Server.
Dieser Teil bezeichnet meistens eine gewisse Gruppe oder
Organisation. Will man die Universität Regensburg ansurfen, so gibt
man „www.uni-regensburg.de“ ein. In diesem Fall ist „uni-regensburg“ der Name der Organisation.
Der letzte Teil, „www“, ist der
tatsächliche Name des Computers, den man anspricht. Dass er „www“ heißt, ist dabei lediglich eine Konvention zur
Vereinfachung der Adressen. Er könnte genausogut „Seneca“,
„news“ oder „Butterblume“ heißen. In diesem Falle
wäre also unsere URL
„http://butterblume.manuel-strehl.de“ (zwischen Groß- und
Kleinschreibung wird (noch) nicht unterschieden). Heutzutage ist speziell das
„www“ oft überflüssig. Viele Internetauftritte
sind auch ohne dieses Anhängsel zu erreichen, z.B.
http://manuel-strehl.de. Das bedeutet, dass (zumindest in der
Theorie) mit manuel-strehl.de ein Computer namens
„manuel-strehl“ angesprochen wird. Praktisch wird
hier einfach umgeleitet auf einen Computer, der die Webseiten enthält und somit
auf die Anfrage antworten kann.
Wenn eine Gruppe nun weitere Untergruppen hat, kann die Anzahl der
Namensbestandteile einer Domain weiter steigen. Die Physikalische Fakultät der
Uni Regensburg ist folgerichtig unter www.physik.uni-regensburg.de zu erreichen. Schauen wir
uns diese Adresse an. „de“ steht für eine deutsche
Adresse, „uni-regensburg“ wieder für die Gruppe.
Jetzt folgt aber „physik“, und darauf der
Rechnername „www“. „physik“ ist also in unserem Fall der Name einer
Untergruppe der Organisation „uni-regensburg“.
Auf diese Art funktionieren viele Phishing-Adressen, auf denen ahnungslosen Online-Banking-Kunden Informationen entlockt werden sollen. Analysiere mit dem obigen Wissen folgende Adresse: http://www.volksbank.de.st529m.lr556cv3.sd34.net. Wem gehört sie? Prinzipiell kann jeder Webseitenbetreiber etwas ähnliches einrichten (in meinem Fall sowas wie www.volksbank.de.manuel-strehl.de).
WWW: Was wollen wir
Wir haben jetzt also bereits herausgefunden, welches Adressschema verwendet
wird (HTTP), und wie der
Computer heißt, den wir im WWW
ansprechen wollen. Jetzt kommt uns unser Wissen über Pfade und Ordner unter
UNIX zugute. Denn der nächste Teil der Adresse, der einfach an das bisherige
angehängt wird, gibt an, welche Datei uns der Server schicken soll.
Wir beginnen mit dem untersten Verzeichnis „/“.
Dann gehen wir in den Ordner „var“. Somit
lautet unsere URI des
Ordners „var“ auf dem Rechner „www“ der Gruppe „manuel-strehl“:
http://www.manuel-strehl.de/var/.
Viele Server sind so eingerichtet, dass sie in diesem Ordner nach einer
Datei namens „index.html“ suchen und
diese statt des Ordnerinhalts an den Client, also an uns, schicken. Wir
probieren dieses Wissen aus und geben folgende Adresse ein:
http://www.manuel-strehl.de/var/index.html und tatsächlich, der
Server liefert das gleiche Ergebnis wie im letzten Fall ohne index.html.Wurde diese Einstellung nicht vorgenommen, sieht man ein
sog. Directory
Listing, also eine Verzeichnisliste genau, als ob wir statt http: file:
eingegeben hätten.
Seit dem „/“ hat sich für uns unmerklich etwas
verändert. Wie oben gesagt unterscheidet UNIX zwischen Groß- und
Kleinschreibung. Weil viele Server (weit über 80%) UNIX oder Linux verwenden,
und wir mit der Angabe nach dem / ja eine Datei
von diesem Rechner wollen, müssen auch wir jetzt auf die Schreibung
achten. Viele Webserver sind zwar so eingestellt, dass sie
nicht unterscheiden, aber man kann nie wissen!
Vor dem „/“ ist Groß- /
Kleinschreibung egal, danach wird sie wichtig.Tatsächlich unterscheiden Windows-Server von Haus aus nicht
zwischen Groß- und Kleinschreibung. Wie erwähnt stellen sie aber einen
vernachlässigbaren Anteil aller Server im Internet.
Wir können jetzt also direkt auf Dateien auf dem Server zugreifen, indem wir seinen Namen kennen und von ihm in UNIX-Schreibweise eine Datei in Ordnern und Unterordnern anfordern. Manchmal tauchen noch so seltsame Namen wie „g%E4stebuch.html“ auf. Das ist eine Eigenheit von HTTP und zeigt, wie es mit Umlauten und Sonderzeichen umgeht. Diese können nicht direkt übertragen werden, sondern müssen „maskiert“ werden. Das geschieht, indem man das betreffende Zeichen einfach ersetzt durch ein %-Zeichen und einen Zahlenwert, der mit dem gewünschten Buchstaben übereinstimmt. Dass dabei auch Buchstaben von A bis F auftauchen, hängt damit zusammen, dass es sich um hexadezimale Zahlen handelt, also um ein 16er System. Aus unserem seltsamen Buchstabenwust wird also einfach „gästebuch.html“.Das System, nach dem Umlaute und Sonderzeichen maskiert werden müssen, folgt einem sogenannten Encoding, einer Abbildungsvorschrift von Zahlen auf Buchstaben und Zeichen. Das mittlerweile verbreitetste Encoding ist UTF-8.
Der letzte Schliff: Daten übertragen
Eigentlich könnte man jetzt zufrieden sein. Wir können jede gewünschte Datei
auf jedem Rechner der Welt aufrufen, sofern er HTTP versteht und ans Internet angeschlossen ist.
Aber es geht noch weiter. Die beiden Zeichen „#“ und „?“ spielen dabei die
Hauptrolle.
Dass wir uns damit beschäftigen müssen, hängt mit Eigenschaften der Dateien
zusammen, die wir anschauen wollen. Betrachten wir zuerst das „#“. HTML bietet eine Möglichkeit, spezielle Punkte in einer
Webseite als „Anker“ auszuzeichnen. Das bedeutet, man kann innerhalb
des Dokuments direkt zu ihnen springen. Besonders nützlich ist diese Fähigkeit
z.B. bei Glossaren, wobei man einfach zwischen den verschiedenen Buchstaben
springen kann, oder in Frage-Antwort- (sogenannten FAQ-) Seiten. Damit der Browser aber weiß, wohin er
springen soll, muss man ihm das mit der Adresse der Datei mitteilen, die man
aufrufen will. Dies geschieht, indem man den Namen des Ankers hinter einem
„#“ notiert.Die Möglichkeit, Anker zu definieren, wird mittlerweile
relativ oft im Zusammenhang mit sogenannten Ajax-Anwendungen verwendet. Dort
dient die Zeichenkette hinter dem # dazu, den Zustand der
Anwendung zu beschreiben. Zum Beispiel kann dadurch bei einem erneuten
Seitenaufruf festgestellt werden, welcher Teil einer Seite gerade sichtbar
war und welcher nicht (man denke an Tabs).
Bleibt noch das „?“. Dieses Zeichen
erlaubt es, direkt und ohne weitere Eingabe Daten an den Server und die
HTML-Datei zu übergeben.
Diese Daten werden dann z.B. dazu verwendet, um Foreneinträge anzuzeigen, die
Sprache festzulegen, in der das Dokument angezeigt wird, oder andere kleine
Informationen zu übergeben. Was übergeben wird, hängt nur von der Adresse ab,
die wir eingeben. Was der Server oder die HTML-Seite daraus machen, ist eine ganz andere Frage.Sobald in einer URI ein ? auftaucht,
beginnen Variable und der Dateiname ist zu Ende, selbst wenn noch ein / auftauchen sollte.
Wenn man bei Google einen Suchbegriff, z.B.
„hallo“, eingibt und auf „Suche“ klickt, ruft der Browser
folgende Adresse auf: „http://www.google.de/search?q=hallo“. Betrachten wir
diese URI. Wir sprechen
den Rechner „www“ von Google an und wollen von ihm
die Datei „search“ im untersten Verzeichnis „/“. Dann folgt das Fragezeichen und ein
„q=“ sowie unser Suchbegriff „hallo“. Es ist kein
Zufall, dass er hier wieder auftaucht. Tatsächlich ist „search“ keine Datei, sondern ein Programm, das wir
gestartet haben, als wir die Adresse eingegeben haben. Diesem Programm haben
wir die Variable „q“ übergeben, d.h., wir haben dem Programm gesagt,
dass unser Suchbegriff (engl. „query“)
„hallo“ ist.
Die übergebenen Variablen sind nach einem einheitlichen Muster aufgebaut.
Nach dem Fragezeichen kommt erst der Name der Variablen, dann ein
„=“ gefolgt von ihrem zugewiesenene Wert. Es
ist auch möglich, mehrere Variablen zu übermitteln. Dann müssen sie durch ein
„&“ getrennt werden. Also übergibt „http://www.google.de/search?q=hallo&sitesearch=manuel-strehl.de“
an das Programm „search“ die Variablen
„q“ (mit unserem Suchbegriff „hallo“) und
„sitesearch“ mit dem Wert „manuel-strehl.de“. In diesem
Fall wird das Programm dazu veranlasst, unseren Begriff nur auf den Seiten von
manuel-strehl.de zu suchen.
Out in the Great Wide Open
Somit haben wir alles zusammen, um die Adressen zu verstehen, denen wir tagtäglich in unseren Webbrowsern begegnen. In Zukunft können wir Leute verblüffen, indem wir nicht erst mühsam Googles Startseite aufrufen, sondern direkt suchen, indem wir „www.google.de/search?q=“ plus unseren Suchbegriff eingeben. In der Wikipedia können wir direkt zu einem Eintrag springen, indem wir „de.wikipedia.org/wiki/“ und den gewünschten Begriff angeben.
Machen wir eine letzte Probe aufs Exempel: Betrachten wir noch einmal die Adresse vom Anfang des Artikels: http://www.tchibo.de/is-bin/INTERSHOP.enfinity/eCS/Store/de/-/EUR/TdTchBrowseCatalog-Start?CategoryName=phase_1&Entry=nlpopup. Was können wir hier erkennen? Zuerst handelt es sich um eine URI. Sie verwendet das Schema HTTP, gefolgt von einem Doppelpunkt sowie den zwei Schrägstrichen, die HTTP fordert.
Dann folgt der Name des Computers im Internet: Er heißt „www“, gehört zu „tchibo“
und steht vermutlich in Deutschland, was das „de“
anzeigt. Wir wollen von ihm eine Datei haben: Dazu gehen wir der Reihe nach von
/ aus in die Unterordner „is-bin“, „INTERSHOP.enfinity“, „eCS“,
„Store“, „de“, „-“ und „EUR“ (nicht davon
abschrecken lassen, dass manche Ordner einen sehr unkonventionellen Namen wie
„-“ tragen!) und fordern die Datei „TdTchBrowseCatalog-Start“ an (beachte die Groß-und
Kleinschreibung).
Dieser Datei übergeben wir zum Abschluss noch ein paar Variablen, nämlich
nach dem „?“: „CategoryName“ mit dem Wert
„phase_1“ sowie „Entry“ mit dem Wert
„nlpopup“. Somit ist unsere Adresse fertig, und wir können nun
einen Blick in das aktuelle Angebot des Auch-Kaffee-Verkäufers werfen.
Dass dies keine besonders schöne oder eingängliche URI ist, muss nicht extra betont werden. Deshalb beginnen viele professionelle Seiten lnagsam, auf sogenannte Sprechende Pfade umzustellen. Das sind kurze, aussagekräftige URLs. Sie haben zudem den Vorteil, dass sie in Suchmaschinen eher berücksichtigt werden. Wenn also eine Firma ein Gewinnspiel anbietet, dann sollte sie dafür eine URL ähnlich zu www.beispiel.de/gewinnspiel wählen.
Das glorreiche Ende: Die vollständige URI
Zum Abschluss gebe ich hier noch das vollständige Schema einer HTTP-Adresse in symbolischer
Schreibweise an. Auch wenn es auf den ersten Blick sehr kryptisch wirkt,
sollte es nach Lesen dieses Artikels zu entziffern sein. In eckigen
Klammern stehen optionale Zusätze (wie z.B. das „#“).
http://[<Benutzer>[:<Passwort>]@]<Server>[:<Port>]/[<Pfad>][?<Anfrage>][#<Fragment>]
Wir haben hier zwei Sachen noch nicht besprochen, nämlich zum einen dass man sich bei einigen Webseiten anmelden kann, indem man vor den Computernamen Benutzername und Passwort setzt, also „nutzername:passwort@www.beispiel.de“.Wenn diese Art von Passwort-Abfrage gefordert wird, erscheint meistens ein Eingabefenster im Browser. Es ist kein Zufall, dass die Syntax einer Email-Adresse ähnelt. Zum anderen erlaubt TCP/IP verschiedene sogenannte Ports, so etwas wie Türklingeln am Server. Nachdem für HTML aber standardmäßig Port 80 verwendet wird, ist dies in der Praxis nicht von Belang.
Gib folgende Adresse in der Adressleiste des Browsers ein:
http://ich:test@www.manuel-strehl.de:80. Der Browser wird den Server
www.manuel-strehl.de unter dem Standardport
80 anwählen und ihm einen erfundenen Benutzernamen
„ich“ sowie ein Passwort „test“ zusenden. Da die
Seite allerdings keinen angemeldeten Benutzer benötigt, wird sie ganz normal
angezeigt, d.h. genau so, als ob wir nur http://www.manuel-strehl.de
angegeben hätten.
Nachwort
Solltest du bis hierher durchgedrungen sein, möchte ich dir noch eine Bitte auf den Weg geben: Wenn du je dafür verantwortlich bist, wie dein Webauftritt oder derjenige deiner Firma aussieht, denke auch an die Schönheit einfacher URIs. Für viele Menschen schaut es viel vertrauter und sicherer aus, wenn sie deine Seite erreichen und in der Adressleiste „www.deine-seite.net/welcome“ steht statt „www.deine-seite.net/cgi-bin/~sos1234/de/useflag/mainfr?t=on&br=ff“. Zwei lesenswerte Artikel dazu bietet auch das W3-Konsortium, also diejenigen, die für die Weiterentwicklung des WWW zuständig sind:
Das W3-Konsortium wird von Tim Berners-Lee, dem Entwickler von HTML, geleitet.
Anmerkung: Seit ich den Artikel vor längerer Zeit geschrieben habe, hat mittlerweile auch Tchibo auf sprechende Pfade umgestellt. Der oben präsentierte Link ist also nicht mehr gültig.