10.1. Grundlagen für HTTP-Abfragen

Das Hyper Text Transfer Protokoll (kurz: HTTP) ist ein Netzwerkprotokoll welches Daten überträgt. Zum Beispiel sendet jeder Browser eine GET-Anfrage sobald eine URL aufgerufen wird. Minimal werden dabei zwei Zeilen gesendet:

GET /index.html HTTP/1.1
Host: www.wp-plugin-erstellen.de

Somit weiß der Webserver, welche Daten er zurücksenden muss.

Es gibt mehrere Methoden, wie Anfragen vorbereitet werden können:

  • GET
    ist dabei die gebräuchlichste Methode. Mit ihr wird z.B. eine Datei unter Angabe der URL vom Server angefordert.
  • POST
    übermittelt zusätzlich noch Daten an den Webserver. Die meisten Formulare im Internet nutzen diese Methode.
  • HEAD
    löst die gleiche Anfrage wie GET aus. Weist aber den Webserver an, keinen Inhalt (Body) zu senden.
  • PUT
    Dient dazu, z.B. eine Datei auf den Webserver hochzuladen. Diese Methode ist aber heute kaum implementiert.
  • DELETE
    löscht z.B. eine Datei auf dem Webserver. Ist ebenfalls vom Webserver meist nicht implementiert.
  • TRACE
    weist den Server an, die Anfrage zurück zu schicken. So kann überprüft werden, ob und wie die Daten, die zum Server gesendet worden sind, verändert wurden.
  • OPTIONS
    lieferte eine Liste der vom Server unterstützten Features.
  • CONNECT
    wird von Proxyservern implementiert, die SSL-Tunnel zur Verfügung stellen.

Die meisten der oben genannten Abfrage-Methoden werden Sie fast nie brauchen. Gebräuchlich sind GET, POST, HEAD und PUT.

Im Falle der GET-Anfrage antwortet der Webserver beispielhaft mit folgenden Zeilen:

HTTP/1.1 200 OK
Server: Apache
Content-Length: [Größe der index.html in Byte]
Content-Language: de (nach RFC 3282 sowie RFC 1766)
Connection: close
Content-Type: text/html

[Hier folgt der eigentlicher Inhalt der index.html]

Die Information, die vom Webserver zurückkam (engl. Response) gliedert sich in drei Teile: dem Header, einer Leerzeile und dem eigentlichen Inhalt.

Das erste, was der Webserver hier zurückgibt ist die Protokollversion (derzeit entweder HTTP/1.0, HTTP/1.1 oder HTTP/2 sowie den Statuscode (in unserem Fall 200 OK).

Mögliche Statuscodes sind:

  • 1xx: Informationen
    Der Webserver teilt uns mit, dass die Bearbeitung im Gange ist und die Anfrage noch andauert.
  • 2XX: Erfolgreiche Operation
    Die Anfrage wurde beantwortet und eine Antwort wurde zurückgesendet (in unserem Beispiel bedeutet das: Dokument index.html wurde gefunden und zurückgeschickt).
  • 3XX: Umleitung
    Die angeforderte URL wird umgeleitet. Der Webserver sendet die URL im Header-Bereich mit unter der die neue Seite erreichbar ist.
  • 4XX: Client-Fehler
    Bei der Bearbeitung der Anfrage trat ein Fehler auf an der der Client Schuld hat. Der Fehler 404 tritt z.B. dann auf, wenn eine URL angefragt wurde, die auf dem Server nicht existiert.
  • 5XX: Server-Fehler
    Bei der Bearbeitung der Anfrage trat ein servierseitiger Fehler auf. Der Fehler 503 z.B. sagt aus, dass der Server wegen Überlastung nicht erreichbar ist.

Alle HTTP-Statuscodes können Sie im Detail auf Wikipedia nachlesen: http://de.wikipedia.org/wiki/HTTP-Statuscode