Das HTTP Protokoll

November 2016

Einführung in das HTTP Protokoll


Das Protokoll HTTP (HyperText Transfer Protocol) ist das im Internet seit 1990 meistbenutzte Protokoll. Die Version 0.9 war nur dem Datentranfer ins Internet gewidmet (insbesondere in HTML geschriebenen Seiten. Dir Version 1.0 (am meisten verwendet) kann Nachrichten mit Header übertragen, die Inhaltsangaben über die Meldungen selbst machen, mittels der MIME Kodierung.

Ziel des HTTP Protokoll sei der lokalisierte Datentransfer (hauptsächlich in HTML format) dank einer sogenannten URL Zeichenkette zwischen Navigator (Client) und Webserver (desweiteren genannt httpd auf UNIX Maschinen).

Kommunikation zwischen Navigator und Server


Die Kommunikation zwischen Navigator und Server geschiet in zwei Stufen :

Communication entre navigateur et serveur
  • Der Navigator macht eine HTTP Anfrage
  • Der Server bearbeitet die Anfrage und sendet eine HTTP Antwort In Wirklichkeit läuft die Kommunikation über eine längere Zeitspanne wenn man die Bearbeitung in Server miteinbezieht. Da wir nur das HTTP beleuchten wollen, wird die Bearbeitung auf der Server Seite vom Rahmen dieses Artikels ausgelassen...

Bei Interesse wird auf folgende Artikeln verwiesen Die Bearbeitung der CGI.

HTTP Request


Ein HTTP Anfrage (Request) ist eine vom Navigator zum Server gesendete Zeilenfolge. Sie enthählt :

  • Eine Request Zeile: Dies ist eine Zeile die den beantragten Dokumententyp, die anzuwendenden Methode, und die eingesetzte Protkoll version bestimmt. Die Zeile gliedert sich in drei Teilen :
    • Die Methode
    • Die URL
    • Die vom Clienten verwendete Protokollversion (im allgemeinen HTTP/1.0)
  • Die Felder im Nachrichtenkopf der Anfrage: Anzahl von fakultativen Zeilen mit zusätlichen Informationen über die Anfrage und/oder den Clienten (Navigator, Betriebssystem ...). Jede Zeile besteht aus einem Kopf-Typ bezeichnenden Namen gefolt von einem zwei-Punkt (:) und den Kopfwert.
  • Der Anfragekörper: ist eine Folge von optionalen Zeilen getrennt vom vorrigen Zeilenblock durch eine Leerzeile. Er kann z.B. mit einem POST Befehl Daten an den Server über ein Formular senden



Eine HTTP Anfrage hat folgende Syntax (<crlf> bedeutet carriage return oder Line Feed) :

METHODE URL VERSION <crlf> KOPF : Wert <crlf>
.
.
.
KOPF : Wert <crlf>
 Leere Zeile<crlf> ANFRAGEKOPF



Hier ein Beispiel für eine HTTP Anfrage :

GET http://de.kioskea.net HTTP/1.0
Accept : text/html
If-Modified-Since : Saturday, 15-January-2000 14:37:11 GMT
User-Agent : Mozilla/4.0 (compatible; MSIE 5.0; Windows 95)

Befehle



Befehl</span>Beschreibung</span>
GETAnfrage der URL Quelle
HEADAnfrage des URL Kopf
POSTSenden der Daten zum URL Programm
PUTSenden der Daten zur URL
DELETELöschung der URL Quelle

Köpfe



Kopfname</span>Beschreibung</span>
AcceptBrowser eigener Inhalttyp (z.B. text/html). Siehe MIME Typen
Accept-CharsetBrowser Zeichensatz
Accept-EncodingBrowser Datenkodierung
Accept-LanguageBrowser Sprache (per defaut english
AuthorizationBrowser Identifizierung beim Server
Content-EncodingKörper Kodierungsart der Anfrage
Content-LanguageKörpersprache der Anfrage
Content-LengthKörperlänge der Anfrage
Content-TypeKörper Inhalt-Art der Anfrage (z.B. text/html). Siehe MIME Typen
DateAnfangsdatum der Transferdaten
Forwardedeingesetzt bei Übergangsrechner zwischen Server und Browser
FromBezeichnung der Client E-Mail
FromFordertr ein Dokument das seit längerer Zeit geändert wurde
LinkBeziehnug zwischen zwei URL
Orig-URLUrsprung URL der Anfrage
RefererUrsprung-URL (Link) von dem die Anfrage stammt
User-AgentInformationsfolge über den Client, wie Name, Browserversion, Betriebsystem

HTTP Antwort


Eine HTTP Antwort setzt sich aus Zeilen vom Browser zum Server. Sie besteht aus :

  • Statuszeile: Zeile mit Angabe der verwendeten Protokollversion und Bearbeitungzustand der Anfrage mittels Code und Erläuterungstext. Die Zeile besteht aus drei Kürzel getrennt durch ein Leerzeichen :
    • Version des angewendeten Protokolls
    • Statuscode
    • Code Erläuterung
  • Die Antwort-Kopffelder: Besteht aus einer wahlfreien Zeilenfolge mit zusätzlichen Angaben über dei Antwort und/oder den Server. Zum Aufbau der Zeilen gehören Kopftypename gefolt von einem Doppelpunkt (:) und Kopfwert
  • Antwort-Körper: legt das Dokument vor



Eine HTTP Antwort baut auf folgender Syntax ( <crlf> bedeutet Carriage Return oder Line Feed) :

VERSION-HTTP CODE EXPLICATION <crlf> Kopf : Wert <crlf>
.
.
.
KOPF : Wert <crlf>
Leerzeile<crlf> ANTWORT Körper



Hier ein Beispiel für eine HTTP Antwort :

HTTP/1.0 200 OK
Date : Sat, 15 Jan 2000 14:37:12 GMT
Server : Microsoft-IIS/2.0
Content-Type : text/HTML
Content-Length : 1245
Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT

Antwort-Köpfe



Kopfname</span>Beschreibung</span>
Content-EncodingKörper Codetyp in der Antwort
Content-LanguageSprachtyp im Körper der Antwort
Content-LengthKörperlänge der Antwort
Content-TypeKörpertypeninhalt in der Antwort (z.B. text/html). Siehe MIME Typen
DateAnfangsdatum der Transferdaten
ExpiresGültigkeitsablaufdatum der Daten
Forwardedeingesetzt bei Übergangsrechner zwischen Server und Browser
LocationUmleitung auf eine neue Dokument URL
ServerEigenschaften des Server von dem die Antwort stammt

Die Antwort-Codes


Das sind die Codes die am Bildschirm erscheinen wenn der Browser die geforderte Seite nicht findet. Diser Antwortcodes bestehen aus drei Ziffer : der erste gibt die Statusklasse und die nächsten die ausführliche Art des Fehlers.


CodeMeldungBeschreibung
10x</gras>InformationsmeldungDiese Codes sind im Protokoll Version 1.0 nicht vorhanden
20x</gras>ErfolgDiese Codes zeigen den guten Ablauf der Transaktion
200OKDie Anfrage wurde korrekt abgeschlossen
201CREATEDFolgt auf ein Befehl POST, zeigt Erfolg an; der Dokument-Body sollte die URL zu dem eben geforderten Dokument
202ACCEPTEDDie Anfrage wurde angenommen, aber der nachfolgende Prozess wurde nicht abgeschlossen
203PARTIAL INFORMATIONWenn dieser Code aus der Abarbeitung des Befehls GET kommt, zeigt dies eine nicht abgeschlossen Handlung.
204NO RESPONSEDie Anfrage ist beim Server angekommen, es sind aber keine Informationen zu senden
205RESET CONTENTDer Server fordert den Browser zur Löschung der Inhalte von Formularfelder
206PARTIAL CONTENTEs handelt sich um die Antwort auf eine Anfrage mit dem Kopf range. Der Server zeigt den Kopf content-Range
30xRedirectionDiese Codes zeigen dass die Ressource einen Stellenwechsel unterlagen
301MOVEDDie angefragten Daten wurden auf eine anderen Adresse verlegt
302FOUNDDie angefragten Daten sind zwar eine neue URL, aber sie sind inzwischen verlegt worden
303METHODDer Client soll eine neue Adresse probieren, möglichst mit einer anderen Methode als GET
304NOT MODIFIEDWenn der Client ein bedingtes GET gesendet hat (um nach einer Dokumentenänderung seit dem letzten Besuch zu fragen) aber das Dokument unmodifiziert blieb
40xClient VersagenDiese Codes zeigen dass die Anfrage nicht korrekt formuliert wurde
400BAD REQUESTSyntaxfehler bei der Anfrage, oder die Bearbeitung ist nicht möglich
401UNAUTHORIZEDDie Meldungsparameter machen Angaben über die zulässigen Beglaubigungsformen. Der Client soll seine Anfrage mit korrekten Genehmigungsdaten, neu formulieren
402PAYMENT REQUIREDDer Client soll seine Anfrage neu formulieren mit den korrekten Zahlungsangaben
403FORBIDDENDer Ressourcenzugang ist einfach verboten
404NOT FOUNDKlassich! Der Server hat nichts gefunden. Umgezogen ohne neue Adressangaben ... :)
50xErreur due au serveurDiese Codes melden einen internen Fehler des Server
500INTERNAL ERRORDer Server steht vor einem unlöslichen Fall der ihn zur Aufgabe der Bearbeitung zwingt ( ein Hinweis darauf dass Server auch gewisse Zwängen unterliegen...)
501NOT IMPLEMENTEDDer Server kennt den Dienst überhaupt nicht ( man kann nicht immer alles tun ...)
502BAD GATEWAYDer Server erhält eine ungültige Antwort vom angesprochenen Server an dem er sich als Gateway oder Proxy anbinden wollte
503SERVICE UNAVAILABLEDer Server ist zeitlich unabkömmlich, wegen Verkehr Überlastung ( alle Linien vollbesetzt, bitte später anrufen)
504GATEWAY TIMEOUTDie Server Antwortzeit geht über die vom Gateway gebilligte Antwortzeit hinaus ( Die Ihnen zugesprochene Zeit ist abgelaufen ...)

Nähere Erläuterungen


Zwecks zusätzliche Informationen über das HTTP Protokoll, wird verwiesen auf RFC 1945 detaillierte Angaben über das Protokoll :

  • RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0 (französische Übersetzung)
  • RFC 1945 - Hypertext Transfer Protocol -- HTTP/1.0 (Original)
  • RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1 (Original)
  • Cookies


Lesen Sie auch :


The HTTP protocol
The HTTP protocol
El protocolo HTTP
El protocolo HTTP
Le protocole HTTP
Le protocole HTTP
Il protocollo HTTP
Il protocollo HTTP
O protocolo  HTTP
O protocolo HTTP
Polityka prywatności
Polityka prywatności
Das Dokument mit dem Titel « Das HTTP Protokoll » aus CCM (de.ccm.net) wird zur Verfügung gestellt unter den Bedingungen der Creative Commons Lizenz. Sie dürfen das Dokument verwenden, verändern sowie Vervielfältigungen dieser Seite erstellen, unter den Bedingungen, die in der vorgenannten Lizenz erwähnt sind und unter der gleichzeitigen Bedingung, dass Sie im Rahmen Ihrer Verwendung, Veränderung oder Vervielfältigung nach außen hin klar und deutlich auf den Urheber (= de.ccm.net) des Dokuments hinweisen.