HTTP Protokoll – Hintergrundwissen
HTTP ist das Protokoll des WWW schlechthin. Ohne HTTP könnten Sie das hier nur schlecht lesen und ohne HTTP könnten Sie auch ihr Online-Banking nicht machen. Doch was steckt hinter diesem einzigartigen Protokoll? Wir beleuchten für Sie die Sache und zeigen Ihnen, wie HTTP funktioniert und wie die Webseite zu Ihnen nach Hause kommt.Was ist HTTP?
HTTP steht für Hypertext Transfer Protokoll und ist damit laut Bezeichnung ein Protokoll zum Übertragen von Hypertext-Dokumenten. Im Ursprünglichen Sinn sollten damit also HTML-Dokumente von einem Computer zum anderen übertragen werden - das ist eben das Prinzip des WWW. HTTP definiert dazu eine Reihe von Regeln und Mechanismen die ein Computer(-Programm) verwenden kann um bestimmte Dateien anzufordern oder eben diese auszusenden.Geschichtlicher Rückblick
Die Geschichte des HTTP begann lange nach dem Start des Internet. 1989/90 ersann der britische Informatiker Tim Berners-Lee die Idee eines World-Wide-Web. Die Idee war, dass jeder Computer der innerhalb des WWWD aten anbieten konnte und dass man von diesem dann auch bestimmte Daten beziehen konnte. Zur Umsetzung eben dieser Idee, war es nötig, dass der Datenerfrager (der Client) seinen Wunsch nach Daten ausdrücken konnte und ebenso dass der Datenlieferer (der Server) verstand, welche Daten gewünscht waren und diese dann auch in geeigneter Form liefern konnte. Für eben diese Kommunikation benötigte man sodann ein Protokoll: HTTP.HTTP-Transaktionen
Im Folgenden wollen wir das HTTP-Protokoll nun näher kennen lernen. Das Protokoll an sich ist dabei relativ einfach und von nur wenigen Abfolgen dominiert.
Request-Methoden
HTTP unterstützt für verschiedene Anwendungen auch verschiedene Request-Methoden (“Anfrage-Varianten”). Damit stehen dem Client mehrere Methoden zur Verfügung um etwa Dateien abzurufen, ein Formular abzusenden oder eine Datei hoch zu laden.
- GET-Methode
- HEAD-Methode
- POST-Methode
- PUT-Methode
- DELETE-Methode
- LINK-Methode
- UNLINK-Methode
- TRACE-Methode
- OPTIONS-Methode
- Weitere Methoden
Allgemeine Header
Allgemeine Header sind Header, die sowohl bei Requests als auch bei Responses verwendet werden können. Es gibt davon insgesamt 9:
Request-Header
Die Request-Header werden ausschließlich beim Request, also bei der Anfrage des Client, verwendet.
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Authorization
- Cookie
- Expect
- From
- Host
- If-Match
- If-Modified-Since
- If-None-Match
- If-Range
- If-Unmodified-Since
- Max-Forwards
- Proxy-Authorization
- Range
- Referer
- TE
- User-Agent
Entity-Header
Entity-Header sind Headerdaten, die den Entity-Body (im Normalfall die POST- bzw. Dateidaten) beschreiben.
- Allow
- Content-Encoding
- Content-Language
- Content-Length
- Content-Location
- Content-MD5
- Content-Range
- Content-Type
- Expires
- Last-Modified
Response-Header
Die Response-Header werden ausschließlich beim Response, also der Serverantwort, verwendet.
- Accept-Ranges
- Age
- ETag
- Location
- Proxy-Authenticate
- Retry-After
- Server
- Set-Cookie
- Vary
- WWW-Authenticate
Response Codes
Die Response-Codes teilen dem Client mit, wie erfolgreich oder nicht erfolgreich der Request verlaufen ist. Der Response-Code ist eine dreistellige Zahl zwischen 100 und 599 – jeder Code gibt dabei einen bestimmten Status an. Die Codes selbst sind in bestimmte Bereiche (1xx, 2xx, 3xx, …) gegliedert, die jeweils bestimmte Grundaussagen besitzen. Neben den fest definierten Response-Codes kann ein Server auch einen völlig anderen Code aus dem jeweiligen Bereich verwenden, sofern dieser vom Clienten unterstützt wird.
- Response-Codes 100 – 199: Informelle Codes
- 100 Continue
- 101 Switching Protocols
- Response-Codes 200 – 299: Request erfolgreich
- 200 OK
- 201 Created
- 202 Accepted
- 203 Non-Authoritative Information
- 204 No Content
- 205 Reset Content
- 206 Partial Content
- Response-Codes 300 – 399: Weiterleitung
- 300 Multiple Choices
- 301 Moved Permanently
- 302 Found
- 303 See Other
- 304 Not Modified
- 305 Use Proxy
- 307 Temporary Redirect
- Response-Codes 400 – 499: Fehler des Clienten
- 400 Bad Request
- 401 Unauthorized
- 402 Payment Required
- 403 Forbidden
- 404 Not Found
- 405 Method Not Allowed
- 406 Not Acceptable
- 407 Proxy Authentication Required
- 408 Request Timeout
- 409 Conflict
- 410 Gone
- 411 Length Required
- 412 Precondition Failed
- 413 Request Entity Too Large
- 414 Request-URI Too Long
- 415 Unsupported Media Type
- 416 Requested Range Not Satisfiable
- 417 Expectation Failed
- Response-Codes 500 – 599: Fehler des Server
- 500 Internal Server Error
- 501 Not Implemented
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
- 505 HTTP Version Not Supported
Anwendungsbeispiele
Im letzten Teil möchten wir Ihnen nun einige praxisnahe Einblicke in HTTP bieten und Ihnen zeigen, wie bestimmte Aufgaben- und Problemstellungen behandelt werden.
- Die Nachrichtenlänge feststellen
- Bytebereiche
- Chunked Encoding
- Verwendung von Cookies
- Authentifizierung von Clienten
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project