| LetztePPP / SLIP | Das HTTP Protokoll | NächstLDAP |
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 HTMLgeschriebenen 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).
Die Kommunikation zwischen Navigator und Server geschiet in zwei Stufen :
Ein HTTP Anfrage (Request) ist eine vom Navigator zum Server gesendete Zeilenfolge. Sie enthählt :
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)
| Befehl | Beschreibung |
|---|---|
| GET | Anfrage der URL Quelle |
| HEAD | Anfrage des URL Kopf |
| POST | Senden der Daten zum URL Programm |
| PUT | Senden der Daten zur URL |
| DELETE | Löschung der URL Quelle |
| Kopfname | Beschreibung |
|---|---|
| Accept | Browser eigener Inhalttyp (z.B. text/html). Siehe MIME Typen |
| Accept-Charset | Browser Zeichensatz |
| Accept-Encoding | Browser Datenkodierung |
| Accept-Language | Browser Sprache (per defaut english |
| Authorization | Browser Identifizierung beim Server |
| Content-Encoding | Körper Kodierungsart der Anfrage |
| Content-Language | Körpersprache der Anfrage |
| Content-Length | Körperlänge der Anfrage |
| Content-Type | Körper Inhalt-Art der Anfrage (z.B. text/html). Siehe MIME Typen |
| Date | Anfangsdatum der Transferdaten |
| Forwarded | eingesetzt bei Übergangsrechner zwischen Server und Browser |
| From | Bezeichnung der Client E-Mail |
| From | Fordertr ein Dokument das seit längerer Zeit geändert wurde |
| Link | Beziehnug zwischen zwei URL |
| Orig-URL | Ursprung URL der Anfrage |
| Referer | Ursprung-URL (Link) von dem die Anfrage stammt |
| User-Agent | Informationsfolge über den Client, wie Name, Browserversion, Betriebsystem |
Eine HTTP Antwort setzt sich aus Zeilen vom Browser zum Server. Sie besteht aus :
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
| Kopfname | Beschreibung |
|---|---|
| Content-Encoding | Körper Codetyp in der Antwort |
| Content-Language | Sprachtyp im Körper der Antwort |
| Content-Length | Körperlänge der Antwort |
| Content-Type | Körpertypeninhalt in der Antwort (z.B. text/html). Siehe MIME Typen |
| Date | Anfangsdatum der Transferdaten |
| Expires | Gültigkeitsablaufdatum der Daten |
| Forwarded | eingesetzt bei Übergangsrechner zwischen Server und Browser |
| Location | Umleitung auf eine neue Dokument URL |
| Server | Eigenschaften des Server von dem die Antwort stammt |
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.
| Code | Meldung | Beschreibung |
|---|---|---|
| 10x | Informationsmeldung | Diese Codes sind im Protokoll Version 1.0 nicht vorhanden |
| 20x | Erfolg | Diese Codes zeigen den guten Ablauf der Transaktion |
| 200 | OK | Die Anfrage wurde korrekt abgeschlossen |
| 201 | CREATED | Folgt auf ein Befehl POST, zeigt Erfolg an; der Dokument-Body sollte die URLzu dem eben geforderten Dokument |
| 202 | ACCEPTED | Die Anfrage wurde angenommen, aber der nachfolgende Prozess wurde nicht abgeschlossen |
| 203 | PARTIAL INFORMATION | Wenn dieser Code aus der Abarbeitung des Befehls GET kommt, zeigt dies eine nicht abgeschlossen Handlung. |
| 204 | NO RESPONSE | Die Anfrage ist beim Server angekommen, es sind aber keine Informationen zu senden |
| 205 | RESET CONTENT | Der Server fordert den Browser zur Löschung der Inhalte von Formularfelder |
| 206 | PARTIAL CONTENT | Es handelt sich um die Antwort auf eine Anfrage mit dem Kopf range. Der Server zeigt den Kopf content-Range |
| 30x | Redirection | Diese Codes zeigen dass die Ressource einen Stellenwechsel unterlagen |
| 301 | MOVED | Die angefragten Daten wurden auf eine anderen Adresse verlegt |
| 302 | FOUND | Die angefragten Daten sind zwar eine neue URL, aber sie sind inzwischen verlegt worden |
| 303 | METHOD | Der Client soll eine neue Adresse probieren, möglichst mit einer anderen Methode als GET |
| 304 | NOT MODIFIED | Wenn der Client ein bedingtes GET gesendet hat (um nach einer Dokumentenänderung seit dem letzten Besuch zu fragen) aber das Dokument unmodifiziert blieb |
| 40x | Client Versagen | Diese Codes zeigen dass die Anfrage nicht korrekt formuliert wurde |
| 400 | BAD REQUEST | Syntaxfehler bei der Anfrage, oder die Bearbeitung ist nicht möglich |
| 401 | UNAUTHORIZED | Die Meldungsparameter machen Angaben über die zulässigen Beglaubigungsformen. Der Client soll seine Anfrage mit korrekten Genehmigungsdaten, neu formulieren |
| 402 | PAYMENT REQUIRED | Der Client soll seine Anfrage neu formulieren mit den korrekten Zahlungsangaben |
| 403 | FORBIDDEN | Der Ressourcenzugang ist einfach verboten |
| 404 | NOT FOUND | Klassich! Der Server hat nichts gefunden. Umgezogen ohne neue Adressangaben … :) |
| 50x | Erreur due au serveur | Diese Codes melden einen internen Fehler des Server |
| 500 | INTERNAL ERROR | Der Server steht vor einem unlöslichen Fall der ihn zur Aufgabe der Bearbeitung zwingt ( ein Hinweis darauf dass Server auch gewisse Zwängen unterliegen…) |
| 501 | NOT IMPLEMENTED | Der Server kennt den Dienst überhaupt nicht ( man kann nicht immer alles tun …) |
| 502 | BAD GATEWAY | Der Server erhält eine ungültige Antwort vom angesprochenen Server an dem er sich als Gateway oder Proxy anbinden wollte |
| 503 | SERVICE UNAVAILABLE | Der Server ist zeitlich unabkömmlich, wegen Verkehr Überlastung ( alle Linien vollbesetzt, bitte später anrufen) |
| 504 | GATEWAY TIMEOUT | Die Server Antwortzeit geht über die vom Gateway gebilligte Antwortzeit hinaus ( Die Ihnen zugesprochene Zeit ist abgelaufen …) |
Zwecks zusätzliche Informationen über das HTTP Protokoll, wird verwiesen auf RFC 1945 detaillierte Angaben über das Protokoll :