Logo

Kurs: Internet/Intranet zur technische Kommunikation im Internet
Das Hypertext Transfer Protocol (HTTP)

HTTP-Kommunikation beim Zugriff auf die URL http://mühlenjost.de/html/ikurs4.htm

Der Browser sendet -->

GET /html/ikurs4.htm HTTP/1.1
Host: xn--mhlenjost-q9a.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:0.9.2) Gecko/20010726 Netscape6/6.1
Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, image/png, image/jpeg, image/gif;q=0.2,text/plain;q=0.8, text/css, */*;q=0.1
Accept-Language: de, en;q=0.66, uk;q=0.33
Accept-Encoding: gzip,deflate,compress,identity
Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66
Keep-Alive: 300
Cookie: Kundennummer=007; Besucherzaehler=114
Connection: keep-alive
Referer: http://www.hier.komm.ich.her.de/Datei-mit-Link.php?querystring=Uebergabetext
Via: 1.1 proxy10.firma-xy.de:3128 (Squid/2.3.STABLE4-hno.CVS)
X-Forwarded-For: 172.20.42.1
Pragma: no-cache
Cache-Control: no-cache

Der Server antwortet -->

HTTP/1.1 200 OK
Date: Mon, 29 Oct 2001 16:29:51 GMT
Server: Apache/1.3.19 (Unix) (SuSE/Linux) mod_ssl/2.7.1 OpenSSL/0.9.6 PHP/4.0.4pl1
Last-Modified: Mon, 14 May 2001 15:47:07 GMT
ETag: "16475-ca51-3afffdfb"
Accept-Ranges: bytes
Content-Length: 51793
Keep-Alive: timeout=15, max=99
Set-Cookie: Kundennummer=2002-007; Besucherzaehler=115; expires=Sat, 01-Feb-10 23:58:53 GMT
Connection: Keep-Alive
Content-Type: text/html

<html><head><title>ikurs4 (tech. Kommunikation im Internet)</title>........ <-- Hier beginnen die Daten der ikurs4.htm Datei

Der Browser läd erneut -->

GET /html/ikurs4.htm HTTP/1.1
Accept: */*
Accept-Language: de
Accept-Encoding: gzip, deflate
If-Modified-Since: Mon, 14 May 2001 15:47:07 GMT
If-None-Match: "16475-ca51-3afffdfb"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: muehlenjost.de
Connection: Keep-Alive
Referer: http://www.hier.komm.ich.her.de/Datei-mit-Link.php?querystring=Uebergabetext

Der Server antwortet -->

HTTP/1.1 304 Not Modified
Date: Mon, 29 Oct 2001 16:35:03 GMT
Server: Apache/1.3.19 (Unix) (SuSE/Linux) mod_ssl/2.7.1 OpenSSL/0.9.6 PHP/4.0.4pl1
Connection: Keep-Alive
Keep-Alive: timeout=15, max=98
ETag: "16475-ca51-3afffdfb"

HTTP-Befehle (vom Browser -> Server)
Alle HTTP-Befehle werden innerhalb von HTTP-Anfragen und -Antworten von Client und Server erzeugt bzw. empfangen. Dies bedeutet auch, daß der Nutzer in der Regel nicht in die Verlegenheit kommt, direkt einen HTTP-Befehl anwenden zu müssen. Aus diesem Grund liefere ich hier nur einen kurzen Überblick über die vorhandenen HTTP-1.1-Befehle:
  • GET
    Client-seitiger Befehl zur Anforderung von Ressourcen von einem Webserver.
    Im Folge-Header kann dieses mit Bedingungen verknüpft sein.
    Durch ein Fragezeichen "?" getrennt können Formular-Daten übermitteln werden.
  • DELETE
    Client-seitiger Befehl zum Löschen von Ressourcen auf einem Webserver.
  • HEAD
    Entspricht dem GET-Befehl mit der Ausnahme, daß der Server bei seiner Antwort die angegebene Ressource nicht mitübertragen muß. Dieser Befehl wird oft benutzt, um z.B. vorhandene Hyperlinks nur zu testen.
  • OPTIONS
    Client-seitiger Befehl zur Übergabe von Informationen über die Kommunikation zwischen Client und Server.
  • POST
    Der POST-Befehl wird benutzt, um Formulardaten direkt an ein serverseitiges Programm zu schicken (im Gegensatz zum GET-Befehl, daß Formulardaten serverseitig zunächst in der Variable QUERY-STRING speichert, die von einem CGI-Programm ausgelesen werden muß).
  • PUT
    Dieser Befehl positioniert eine beigelegte Ressource an den angegebenen Ort innerhalb des Webservers.
  • TRACE
    Dieser Befehl fungiert als Echo-Befehl, d.h. der Server sendet dem Client bei diesem Befehl genau das zurück, was er von ihm erhalten hat.
  • CONNECT
    Durch die CONNECT-Methode baut ein Proxy-Server einen Tunnel zum angegebenen Rechner auf und übermittelt darin Daten und Kommandos zwischen Client und Server.

Statusmeldungen (vom Server -> Browser)
In HTTP sind für Statusmeldungen spezielle Kennzahlen vereinbart. Diese Statusmeldungen werden von einem Server in jeden Header einer HTTP-Antwort eingefügt. Kann oder darf die angeforderte Ressource nicht direkt übermittelt werden, wird außerdem eine automatisch generierte HTML-Seite übermittelt, die den Fehlercode und evt. weitere Hinweise enthält.
  • Klasse 1xx: INFORMATIONAL
    Diese Klasse ist für provisorische Antworten reserviert.
    • 100 Continue
      Der Server hat die Anfrage korrekt erhalten und wartet auf weitere Anweisungen des Clients, um die Anfrage ausführen zu können.
    • 101 Switching Protocols
      Der Server hat die Anfrage korrekt erhalten und wird gemäß der Anweisung des Clients zum Ausführen der Anfrage das Übertragungsprotokoll nach Senden dieser Statusmeldung ändern.
  • Klasse 2xx: SUCCESSFULL
    Die 2xx-Klasse zeigt an, daß die Anfrage des Clients vom Server empfangen, verstanden und akzeptiert wurde
    • 200 OK
      Die Anfrage erreichte korrekt den Server und wurde korrekt ausgeführt
    • 201 Created
      Die Anfrage erreichte korrekt den Server und die angeforderte Ressource wurde neu erzeugt.
    • 202 Accepted
      Die Anfrage erreichte korrekt den Server, konnte aber noch nicht bearbeitet werden.
    • 203 Non-Authoritative Information
      Die angefragte Ressource ist zwar nicht auf dem ursprünglich angewählten Server vorhanden, dieser hat jedoch die Anfrage automatisch an eine andere Ressource weitergeleitet, die die angeforderte Information enthält.
    • 204 No Content
      Die Anfrage erreichte korrekt den Server, jedoch ist die angeforderte Ressource unverändert (wichtig für Anfragen über Proxy-Server).
    • 205 Reset Content
      Die Anfrage erreichte korrekt den Server und wurde verarbeitet. Mit dieser Antwort wird der anfragende Client aufgefordert, die Dokumentansicht zu löschen, die die Anfrage nach dieser Ressource auslöste (z.B. eine Eingabe in einem Formularfeld).
    • 206 Partial Content
      Die GET-Anfrage enthielt im HTTP-Header die Zeile Range, der den Server auffordert, nur einen bestimmten Bereich der angeforderten Ressource zu übermitteln. Diese Anfrage erreichte korrekt den Server und wurde verarbeitet.
  • Klasse 3xx: REDIRECTION
    Die 3xx-Klasse zeigt an, daß die Anfrage zwar korrekt empfangen wurde, der Benutzer jedoch Änderungen an der Anfrage zur Ressource machen sollte.
    • 300 Multiple Choices
      Die angeforderte Ressource ist mehrfach vorhanden. Der Nutzer sollte seine Anfrage ggf. konkretisieren.
    • 301 Moved Permanently
      Die angeforderte Ressource ist an eine andere Stelle im Internet verschoben worden und dort erreichbar.
    • 302 Moved Temporarily
      Die angeforderte Ressource ist vorübergehend an einer anderen Stelle im Internet vorhanden.
    • 303 See Other
      Die angeforderte Ressource ist an einer anderen Stelle vorhanden und sollte von dieser Stelle aus abgerufen werden.
    • 304 Not Modified
      Die angeforderte Ressource ist vorhanden, wird aber nicht übertragen, weil sie seit dem letzten Ladevorgang nicht verändert wurde.
    • 305 Use Proxy
      Die angeforderte Ressource kann nur über einen Proxy versendet werden, der explizit in der Antwort im Feld Location angegeben ist.
  • Klasse 4xx: CLIENT ERROR
    Die 4xx-Klasse steht für alle Meldungen über Fehler, die wahrscheinlich durch den anfordernden Client ausgelöst werden.
    • 400 Bad Request
      Der Server konnte die Anfrage des Clients nicht verstehen. Der Client sollte die Anfrage ohne Veränderung nicht wiederholen.
    • 401 Unauthorized
      Der Zugriff auf die angeforderte Ressource erfordert eine Benutzerauthentifikation, die in der Anfrage nicht vorhanden ist.
    • 402 Payment Required
      Dieser Code ist reserviert.
    • 403 Forbidden
      Der Zugriff auf die angeforderte Ressource wird verweigert, da die Datei für den Zugriff gesperrt wurde. Eine Authentifikation ist nicht vorgesehen und der Server wünscht keine Wiederholung der Anfrage.
    • 404 Not Found
      Die angeforderte Ressource ist unter der angegebenen Adresse nicht vorhanden.
    • 405 Method Not Allowed
      Die angeforderte Ressource darf nicht nach der Methode übertragen werden, die der Client im Feld Request des HTTP-Headers angefordert hat. Mit dieser Antwort wird gleichzeitig eine Liste der gültigen Methoden übermittelt, die für eine Übertragung dieser Ressource erlaubt sind.
    • 406 Not Acceptable
      Die angeforderte Ressource kann nicht übermittelt werden, da die Charakteristika der angeforderten Ressource nicht mit der Charakteristika übereinstimmt, die im HTTP-Header des Anfrage geschickt wurde.
    • 407 Proxy Authentication Required
      Dieser Statuscode entspricht dem Statuscode 401 mit dem Unterschied, daß sich der Client zuerst gegenüber dem Proxy identifizieren muß.
    • 408 Request Timeout
      Der Client übermittelte nach Aufbau der Verbindung keine Anfrage, so daß der Server nach einer gewissen Zeit, die vom Serveradministrator festgelegt wurde, diesen Statuscode zurücksendet. Der Client kann seine Anfrage jedoch jederzeit wieder an den Server senden.
    • 409 Conflict
      Die Anfrage des Clients konnte nicht bearbeitet werden, da ein Konflikt bezüglich des aktuellen Status der Ressource vorliegt. Dieser Statuscode wird vom Server nur gesendet, wenn der Nutzer dieses Problem selbst lösen kann, z.B. durch eine veränderte Anfrage.
    • 410 Gone
      Die angeforderte Ressource ist nicht mehr länger auf dem Server vorhanden und es ist keine alternative Adresse für die gleiche Ressource bekannt. Dieser Statuscode wird z.B. von Serveradministratoren gewählt, wenn es sich z.B. um eine zeitlich befristete Präsentation handelte.
    • 411 Length Required
      Der Server hat die Anfrage abgelehnt, da der HTTP-Header der Anfrage keine Variable Content-Length enthielt, um einen bestimmten Bereich der Ressource anzufordern.
    • 412 Precondition Failed
      Die Parameter, die in der Anfrage des Clients übertragen wurden, wurden bei der Prüfung im Server als unwahr (false) deklariert.
    • 413 Request Entity Too Large
      Der Server verweigert die Bearbeitung der Anfrage, da der Inhalt der Anfrage größer ist, als der Server verarbeiten kann oder will. Der Server kann die Verbindung zum Client beenden, um den Client daran zu hindern, weitere Anfragen zu schicken.
    • 414 Request-URI Too Long
      Der Server verweigert die Bearbeitung der Anfrage, da der URI der Anfrage länger ist, als der Server interpretieren kann. Diese seltene Statusmeldung wird verwendet, wenn z.B. ein URL eine überlange Abfrage-Sequenz enthält.
    • 415 Unsupported Media Type
      Der Server verweigert die Bearbeitung der Anfrage, da die angeforderte Ressource nicht in dem Format übertragen werden kann, die in der Anfrage gewünscht wird.
  • Klasse 5xx: SERVER ERROR
    Die 5xx-Klasse steht für vorübergehende Nichtausführbarkeit der Anfrage oder für Fehler, die im Server entstanden bzw. vorhanden sind und eine Ausführung der Anfrage unmöglich macht.
    • 500 Internal Server Error
      Der Server befindet sich in einem undefinierten Zustand und kann die Anfrage nicht ausführen.
    • 501 Not Implemented
      Der Server kann die Anfrage nicht bearbeiten, da er die Art der Anfrage nicht versteht und die Behandlung der angeforderten Ressource nicht kennt.
    • 502 Bad Gateway
      Der Server (eingesetzt als Gateway oder Proxy) kann die Anfrage nicht bearbeiten, da er bei der Weitergabe der Anfrage an einen höherstehenden Server eine Fehlermeldung erhalten hat.
    • 503 Service Unavailable
      Der Server kann die Anfrage nicht bearbeiten, da er vorübergehend überlastet ist oder gewartet wird.
    • 504 Gateway Timeout
      Wenn der Server als Gateway oder Proxy arbeitet, gibt er diese Statusmeldung an den Client zurück, wenn er innerhalb einer, vom Serveradministrator definierte, bestimmte Zeit keine Rückantwort von einem Server erhält, der vom Client über ihn angesprochen wurde.
    • 505 HTTP Version Not Supported
      Der Server kann oder will die HTTP-Version nicht unterstützen, die ein Client für die Anfrage benutzt hat.

Meinolf Mühlenjost 2017