Das HTTP Protokoll

0 | 8318 Aufrufe
Sie können diese Wikiseite nach der Anmeldung auf Webmasterpro bearbeiten. Helfen Sie mit und verbessern Sie "Das HTTP Protokoll" mit Ihrem Wissen!

Anzeige Hier werben

Das HTTP Protokoll

Grundlage sämtlicher Kommunikation in dem Teil des Internets, der sich in einem Webbrowser abspielt, ist das HTTP-Protokoll. Dabei handelt es sich um ein einfaches, standardisiertes Verfahren, mit dem Webbrowser und Webserver miteinander kommunizieren.

Mit dem Prinzip von URLs hast Du dich sicherlich schon einmal beschäftigt: Nehmen wir als Beispiel die URL http://forum.webmasterpro.de/index.php. Sie besteht augenscheinlich aus mehreren Komponenten. In diesem einfachen Fall - einem deutlich komplizierteren wirst Du anfänglich kaum begegnen - bestimmt "http" das zu verwendende Protokoll, der rote Text den Computer, auf dem sich die Webseite befindet und der blaue die Datei, die von diesem Rechner angefordert werden soll. Wenn du mehr auch über kompliziertere URLs wissen willst, lies dir am besten die Wikipedia Seite zu Uniform Resource Locators durch.

Mit diesem Wissen weist du nun schon einmal, welcher Rechner Dir die Webseite ausliefert: Er versteckt sich hinter der Bezeichnung "forum.webmasterpro.de". Intern löst der PC mithilfe von DNS diesen Namen in eine IP-Adresse auf (in diesem Fall: 80.237.211.63), aber das ist für Dich erst einmal unwichtig.

Eine HTTP Anfrage manuell ausführen

Am Besten kannst Du HTTP kennen lernen, indem du ein wenig von Hand damit herumspielst. Nahezu alle PCs haben Programme vorinstalliert, um Daten manuell hin- und herzuschicken. Unter Windows dürfte dir Telnet weiterhelfen, unter Linux eher Netcat. In jedem Fall musst Du ein Kommandozeilenfenster öffnen und einen Befehl tippen, um Dich mit dem Webserver zu verbinden. Unter Windows zum Beispiel:

c:\> telnet forum.webmasterpro.de 80

Unter Linux hilft

$ nc forum.webmasterpro.de 80

weiter.

Die Zahl 80 hat in beiden Fällen eine besondere Bedeutung: Ein PC kann für mehrere Aufgaben zuständig sein - der Rechner, über den Deine Webseite läuft, kann z.B. auch Emails entgegen nehmen. Um unterscheiden zu können, worum es geht und sicherzustellen, dass das richtige Programm die richtigen Anfragen beantwortet, gibt es diese Nummern, so genannte Ports. Für den Moment reicht es, wenn Du weißt, dass Port 80 für das HTTP Protokoll und Webseiten zuständig ist. Näheres kannst du ggf. bei Wikipedia unter Ports herausfinden.

Du solltest nun einen blinkenden Cursor und keine Ausgabe sehen. Tippe nun folgendes ein (und schicke es damit an den Server):

HEAD /index.php HTTP/1.0
Host: forum.webmasterpro.de

Wenn Du jetzt noch zwei leere Zeilen (also Enter drücken) hinterherschickst, wird eine Antwort auf dem Bildschirm erscheinen:

HTTP/1.1 200 OK
Date: Fri, 24 Aug 2007 19:59:03 GMT
Server: ApacheCache-Control: private, pre-check=0, post-check=0, max-age=0
Expires: 0
Pragma: no-cache
Connection: close
Content-Type: text/html

Das Protokoll

Wenn Dir das nicht selbsterklärend erscheint: Die erste Zeile einer Anfrage und/oder der Antwort enthält immer eine Information über das verwendete Protokoll (HTTP/1.0 und HTTP/1.1). Die Anfrage beginnt mit einem Befehl (hier: HEAD) und enthält die angeforderte Datei, die oben blau markiert ist. Antworten enthalten einen Statuscode, 200 steht anscheinend für OK. Zudem können Anfrage und Antwort Felder enthalten; Feldname und Wert sind durch Doppelpunkte getrennt. Was man hier nicht erkennt: Der Nachrichtenkopf und die Daten sind durch eine leere Zeile voneinander getrennt.

Folgende Befehle sind für Dich interessant:

HEAD ruft Informatioen über eine Datei ab, GET ruft eine Datei ab, POST ruft ebenfalls eine Datei ab, sendet jedoch weitere Informationen unterhalb des Headers, z.B. ein Formular.

Näheres zu den Feldern findest Du ebenfalls auf Wikipedia.

Auf dem Server

...passiert folgendes:

  1. Ein Programm (der Webserver) wartet auf eine Anfrage auf Port 80
  2. Wenn ein Browser (oder jemand wie Du von Hand) eine Anfrage schickt, wird diese zunächst eingelesen
  3. Nachdem sie vollständig empfangen wurde, wird die angeforderte Datei gesucht
  4. Wird sie gefunden, gibt es Fallunterscheidungen je nach Dateityp. So oder so wird eine Antwort "gebaut" und versandt.

Die Fallunterscheidung ist im Falle eines Servers, der nur PHP spricht (es gibt noch andere Websprachen), recht simpel: Wenn es sich bei der angeforderten Datei um eine PHP Datei handelt, wird die Anfrage zu Ende gelesen (sprich inklusive Dateiuploads, Formularen, etc) und an ein eigenständiges Programm übergeben, dass dann das PHP Script ausführt. Dieses erzeugt eine Antwort, die dann an den Browser (oder Dich) geschickt wird. Ist die angeforderte Datei kein PHP Script, wird sie gelesen und der Browser versendet sie als Antwort.

Probiere an diesem Punkt am Besten einmal aus, die Startseite von Google "von Hand" zu laden.


Wikiseite bearbeiten

Diese Seite kann von jedem registrierten Benutzer bearbeitet werden. Bisher haben 3 Personen an der Seite "Das HTTP Protokoll" mitgewirkt.

Sie haben einen Fehler entdeckt oder möchten etwas ergänzen? Dann können Sie nach der Anmeldung "Das HTTP Protokoll" hier bearbeiten.

Mitarbeiter