Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Das World Wide Web
Das WWW ("World Wide Web") wurde 1989 am Kernforschungszentrum CERN von Sir Tim Berners Lee erfunden und auch als Software implementiert. Es bestand in seiner ursprünglichen Form aus vier Kerntechnologien, durch deren Zusammenspiel es möglich war, ein weltweit vernetztes Informationssystem zu schaffen, das auch für Laien bedienbar ist:
- Die Sprache HTML zur Beschreibung formatierter Textseiten mit Links und Bildern ("Webseiten").
- Ein Programm, das HTML-kodierte Webseiten von einem Webserver anfordern und auf dem Bildschirm darstellen kann ("Browser"). Der Browser musste zudem in der Lage sein, beim Klick auf einen Link mithilfe der als Linkziel hinterlegten Adresse (URL) die nächste Webseite anzufordern und darzustellen.
- Ein Programm, das HTML-Seiten, Bilder usw. in Dateiform verwalten und ausliefern kann ("Webserver")
- Ein Protokoll zum Anfordern und Ausliefern der Webseiten, Bilder usw. (HTTP)
Das Grundprinzip des WWW wird Ihnen allen vertraut sein. In den folgenden Abschnitten werden wir auf wichtige Details und aktuelle technische Entwicklungen näher eingehen.
HTTP
HTTP (HyperText Transfer Protocol) ist das Standardübertragungsprotokoll im WWW. Es baut in der Regel auf TCP auf. Jede HTTP-Interaktion zwischen Client und Server besteht aus einer Anfrage des Clients und einer Antwort des Servers.
Struktur der Anfragen (requests) und Antworten (responses)
Die wichtigsten Requestparameter
- User-Agent: Hier kann der Client mitteilen, welcher Browser die Anfrage sendet und in welchem Betriebssystem dieser läuft. Diese Information ist für Website-Betreiber wichtig, da sie so statistische Erkenntnisse darüber gewinnen, welche Browser/Betriebsssteme ihre User wie häufig verwenden und ihre Seite speziell für diese optimieren können.
- Host: Das ist die Domain des Servers. Zusammen mit dem "Datei"namen bildet sie die Adresse der Seite. Der Server benötigt dieses Feld, da oft ein Server für mehrere Domains zuständig ist.
- Accept-Language: Damit teilt der Browser dem Server mit, welche Sprache der User vorzugsweise spricht. Hat der Server mehrere Sprachversionen derselben Seite, so kann er mit dieser Information die für den User am besten passende auswählen oder ihn ggf. auch auf einen anderen Server umleiten.
- Accept-Encoding: Der Client teilt dem Server mit, ob dieser die Antwort komprimieren darf und welche Algorithmen der ggf. einsetzen darf.
- Connection: Früher wurde nach jedem HTTP-Resonse die darunterliegende TCP-Verbindung geschlossen. Das ging zulasten der Performance, da das Öffnen einer TCP-Verbindung jedesmal Zeit kostet. Geht der Client davon aus, dass nach dem aktuellen Request noch weitere folgen (z.B. um Bilder einer Website nachzuladen), so setzt er
Connection: Keep-Alive
und signalisiert so dem Server, dass er die TCP-Verbindung aus Performancegründen offenhalten möchte. - Cookie: Der Client kann dem Server sogenannte Cookies (das sind Schlüssel-Wert-Paare) übermitteln, die der Server bei einem vorhergehenden Request beim Client hinterlegt hat. Näheres dazu siehe unten.
Die wichtigsten Responseparameter
Zustandslose (stateless) Protokolle vs. Zustandsbehaftete (stateful) Protokolle
Bei zustandsbehafteten (stateful) Protokollen verwalten die Kommunikationspartner während der Kommunikation einen Zustand, bei zustandslosen (stateless) Protokollen nicht.
Beispiele:
- IP ist zustandslos: Jedes IP-Paket wird unabhängig von allen anderen Paketen versandt und auch empfangen. Vor dem Empfang eines IP-Pakets weiß die IP-Schicht des Empfängerrs nicht, dass es kommen wird und nach dem Empfang weiß sie nicht, ob noch weitere kommen werden.
- TCP ist zustandsbehaftet: Die TCP-Schicht hat die Aufgabe, sicherzustellen, dass alle Pakete, die den Empfänger nicht erreichen, nochmals versandt werden. Dazu müssen Sender und Empfänger speichern, welcher Teil der Daten bereits versandt/empfangen wurde.
- HTTP ist zustandslos: Der Client sendet einen HTTP-Request, der Server antwortet mit einer HTTP-Response. Danach "vergisst" der Server den Client wieder.