WWW

Auch wenn heute allgemein der Brite Sir Timothy John „Tim“ Berners-Lee als Erfinder des Internets bezeichnet wird, so gehen doch die Anfänge bis in die 70er Jahre des vorigen Jahrhunderts zurück, als Hochschulen und Unis in den USA versuchten, miteinander Daten auszutauschen.
Damit ist klar, dass das ‚World Wide Web‘ vor Allem erst einmal ein Netzwerk ist – das sagt schon der Name. Die Schwierigkeit dabei ist der Datenaustausch – die Kommunikation zwischen dem Einen und dem Anderen. Und will man das Internet etwas anschaulicher darstellen, muss man sich erst mal klar machen, was in einem Netzwerk passiert.
Das Prinzip ist relativ einfach. Es gibt jemanden, der etwas haben will: den nennt man Client. Und es gibt jemanden der etwas hat oder anbietet: den nennt man Server.

Clients

Ein Client ist eine Software. Genauer gesagt: Clients sind genau die Softwarekomponenten, die im Internet etwas anfordern, also z. B. Browser wie Internet Explorer (der besser ist als sein Ruf), Firefox, Opera, Chrome, Safari usw., Email-Clients wie z. B. Outlook, Firebird oder FTP-Clients wie z. B. FileZilla, BulletProof u. a.
Kurz gesagt: Der Client ist der, der fragt. Man nennt diese Anfrage ‚Request‘. Und dieser Request muss nach einem ganz bestimmten Muster, in einem definierten Format, erfolgen, nach einem Satz von Regeln, den man Protokoll nennt.

Server

Auch ein Server ist eine Software. Server sind die Softwarekomponenten, die etwas anbieten, z.B. Webseiten, Dateien zum Download, Email oder auch Musik oder Filme.
Kurz gesagt: Ein Server ist der, der antwortet. Man nennt diese Antwort ‚Response‘ und auch diese muss nach einem definierten Regelsatz, dem Protokoll, erfolgen.

Zumindest kann man jetzt erahnen, wie die Kommunikation im Internet funktioniert:
Ein Client stellt eine Anfrage an das Internet (normalerweise direkt an einen Server, z. B. die Webseite in der Adressleiste des Browsers) und der Server schickt dem Client daraufhin seine Antwort, eine HTML-Datei.
Beide, Request (Anfrage vom Client) und Response (Antwort vom Server) müssen ein ganz spezielles Format aufweisen, festgelegt durch das Protokoll.

Protokolle

Protokolle sind die Regelsätze, die das Format von Requests und Responses definieren.
Stellt euch vor, Ihr telefoniert mit einem Menschen in China:
Spricht er deutsch, haben wir kaum Probleme, ihn zu verstehen.
Spricht er englisch, wird es für einige schon schwierig, da das nicht unsere Muttersprache ist.
Spricht er chinesisch, verstehen ihn nur noch gebürtige Chinesen und vielleicht noch der eine oder andere Sinologe.

Die Sprachen sind den Protokollen nicht unähnlich:
Deutsch ist wie ein Protokoll, man sagt ein proprietäres, da deutsch nur in einigen wenigen Ländern gesprochen wird.
Chinesisch ist wie ein Protokoll, auch proprietär, da chinesisch außerhalb Chinas kaum verstanden wird.
Und auch englisch ist wie ein Protokoll, aber man könnte sagen: ein Standardprotokoll, da sich englisch quasi als Weltsprache etabliert hat, und nahezu überall verstanden wird.

Wichtig an der Kommunikation zwischen Client und Server sind also einmal die Protokolle, aber auch, dass beide die gleichen Protokolle vollständig und auf die gleiche Art beherrschen.
Die Kommunikation sieht z. B. für das Protokoll HTTP vereinfacht so aus:

Vereinfachte HTTP-Kommunikation

Dieses einfache Beispiel zeigt aber nicht, was konkret bei der Kommunikation passiert. Das Problem:
Im Internet wird weit mehr als nur ein Protokoll verwendet.
Das am meisten verwendete TCP/IP ist ein so genannter – Protokoll-Stapel (oder Protokoll-Stack), der aus vielen einzelnen Protokollen besteht, die miteinander arbeiten und damit von einander abhängig sind. Das lässt sich am einfachsten an einem Schichtenmodell erklären, das man TCP/IP-Refrenzmodel nennt (übrigens eine Implementierung des OSI-Modells). Dazu aber andernorts (und später) mehr.

Dienste

Ein Schichtenmodell, wie das TCP/IP-Model, soll die Arbeit in einem Netzwerk erläutern. Konkret beinhaltet das TCP/IP-Model 4 Schichten: Netzwerkschicht, Internetschicht, Transportschicht und Anwendungsschicht.
Jede untergeordnete Schicht bietet dabei der übergeordneten Möglichkeiten über eine Schnittstelle (Interface) – die durch ein Protokoll definiert wird – an, Software in Anspruch zu nehmen.
Man sagt kurz: untergeordnete Schicht bietet übergeordneter Schicht einen Dienst (Service) an – und das nach dem gleichen Prinzip, nach dem Web-Server Internet-Clients Dienste anbieten.

Auf jeder der vier Schichten wird Software (Dienste) verfügbar gemacht, die durch Protokolle reglementiert sind. Die Protokolle, die uns interessieren, sind die so genannten „höheren“ oder auch Anwendungs-Protokolle, da sie nur auf der obersten Schicht implementiert sind und dem Benutzer Anwendungen zur Verfügung stellen.
Ein „höherer“ Dienst bedeutet hierbei, dass auf dem Server eine Anwendung läuft – und das dauerhaft – die auf Anfragen von Clients wartet, die sie verarbeiten kann.
Dienste „lauschen“ also auf Anfragen nach einem bestimmten Protokoll, und werden deshalb auch gern so bezeichnet, wie das Protokoll, auf dessen Anfragen sie warten.

Damit reduziert sich ein Server quasi auf den vom ihn angebotenen Dienst: man sagt Service.
Im Internet gibt es eine ganze Menge an solchen Diensten mit den verschiedensten Protokollen. Hier ein paar – teilweise schon erwähnte – Beispiele:

  • Email, mit Protokollen wie: smtp, pop3, imap
  • FTP, File Transfer Protokoll für das Hoch- und Herunterladen von Dateien
  • SSH, Dienst und Protokoll für die Remote-Verwaltung von Servern
  • die so genannten SaaS (Software as a Service), die nach dem Prinzip der SOA (service oriented applications) funktionieren und/oder auch XML-Dienste, wie z. B. RSS- und ATOM-Feeds uvm.
  • verschiedene VPN’s, z. B. bei HTTPS, sicheres HTTP für die verschlüsselte Kommunikation zwischen Clients und Servern
  • und natürlich HTTP nach dem gleichnamigen Protokoll

Alle diese Protokolle und Dienste zu erklären, würde den Rahmen sprengen (vielleicht später).
Details zum HTTP gibt es hier: HTTP

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.