HTTP Header
Definition
Der HTTP Header gehört zum HTTP Protokoll und überträgt während HTTP Requests oder Responses zusätzliche Informationen. HTTP ist dabei die Abkürzung für Hypertext Transfer Protocol. Neben den Daten die vom Webserver der aufgerufenen Website an einen Browser ausgeliefert werden, tauschen Server und Browser über den HTTP Header sogenannte Meta-Informationen über das Dokument aus.
Ein HTTP Request beinhaltet also einen Headerbereich, der Informationen wie etwa das Datum der Anfrage, den Referrer oder die bevorzugte Sprache enthält. Auch die HTTP Response enthält ein Header Feld, in dem der Server seine Informationen an den Browser des Nutzers übermittelt. Dieser Informationsaustausch ist für den Endnutzer üblicherweise unsichtbar.
HTTP Header beinhalten Felder, welche wiederum aus einer Zeile bestehen. Jede Zeile enthält ein durch einen Doppelpunkt getrenntes Name / Wert-Paar (Englisch: Key-Value Pair) und wird durch einen Zeilenumbruch abgeschlossen.
Werte, die für den HTTP Header genutzt werden können, sind in den sogenannten RFC (“Requests for Comments”) festgelegt. Neben den festgelegten Feldern gibt es auch nicht-standardisierte Header, in die benutzerdefinierte Informationen eingetragen werden. Diese Header beginnen üblicherweise mit einem x-
.
Beispiele für Request Header-Felder im HTTP Header
Nachfolgend haben wir eine Auswahl an möglichen Request Header-Feldern für Sie zusammengestellt. Eine umfassende Übersicht über alle Request- und Response-Header-Felder finden Sie unter https://de.wikipedia.org/wiki/Liste_der_HTTP-Headerfelder.
Accept
Über das Feld Accept im HTTP-Request können bestimmte Medientypen angegeben werden, die vom Client akzeptiert werden. Die allgemeine Syntax lautet:
Accept: Typ / Subtyp [q = qwert]
Mehrere Medientypen können durch Kommata getrennt aufgeführt werden. Der optionale Wert q steht für die Qualitätsstufe auf einer Skala von 0 bis 1. Beispiel:
Accept: text / plain; q = 0,5, text / html, text / x-dvi; q = 0.8, Text / x-c
Accept-Charset
Über das Accept-Charset-Feld wird angegeben werden, welche Zeichensätze der Client für die Antwort akzeptiert.
Accept-Charset: character-set
Werden mehrere Zeichensätze angegeben, müssen sie durch Kommata getrennt eingetragen werden. Beispiel:
Accept-Charset: iso-8859-5, Unicode-1-1; q = 0,8
Accept-Encoding
Das Accept-Encoding-Headerfeld beschränkt die Inhaltscodierungen, die in der Antwort akzeptabel sind. Syntax:
Accept-Encoding: Kodierungstypen
Beispiele sind:
Accept-Encoding: gzip
Accept-Encoding: *
Accept-Encoding: gzip; q = 0.7
Accept-Language
Das Accept-Language-Headerfeld beschränkt den Satz natürlicher Sprachen, die als Antwort auf die Anforderung bevorzugt werden. Die Syntax lautet:
Accept-Language: Sprache (+ eventuell q = qwert)
Mehrere Sprachen können durch Kommata getrennt aufgeführt werden. Beispiel:
Accept-Language: de-DE; q = 0.9
Erlaubte Werte sind in RFC 1766 angegeben.
Authorization
Mit dem Authorization-Feld werden Anmeldeinformationen an den Server gesendet. Die Syntax lautet:
Authorization: Anmeldeinformationen
Cookie
Das Cookie-Header-Feld enthält ein Name / Wert-Paar mit den Informationen, die für die angefragte URL gespeichert wurden. Dabei können mehrere Cookie-Informationen angegeben werden:
Cookie: Name1 = Wert1; Name2 = Wert2; Name3 = Wert3
Expect
Der HTTP-Anforderungsheader Expect benennt die Erwartungen des Client, die vom Server erfüllt werden müssen, damit die Anforderung ordnungsgemäß verarbeitet werden kann.
Die allgemeine Syntax lautet:
Expect : 100-continue
From
Das From-Feld enthält eine E-Mail-Adresse des Benutzers, der den anfragenden Client steuert. Beispiel:
From: [email protected]
Das From-Feld kann für Protokollierungszwecke und zur Identifizierung verwendet werden.
Host
Das Host-Feld wird genutzt, um den Internet-Host und die Port-Nummer für die angeforderte Ressource anzugeben. Die Syntax lautet:
Host: host:port
Fehlt die Angabe der Port-Nummer, impliziert dies den Standard-Port 80.
If-Match
Dieses Headerfeld fordert den Server auf, die angeforderte Datei nur dann zu senden, wenn sie den angegebenen Entity-Tags entspricht. Die Syntax lautet:
If-Match: Entity-Tag
Beispiel:
If-Match: "*"
Ein Stern (*) bedeutet, dass jede Datei gesendet werden kann.
If-Modified-Since
Ist If-Modified-Since angegeben, wird eine angeforderte Ressource vom Server nur ausgeliefert, wenn Sie seit dem angegeben Datum verändert wurde. Sonst erfolgt keine Auslieferung und die Seite wird aus dem Cache des Browsers geladen. Syntax:
If-Modified-Since: HTTP-Datum
Ein Beispiel ist:
If-Modified-Since: So, 29. Okt. 2017 19:43:31 GMT
If-None-Match
Dieser Header fordert den Server auf, die angeforderte Datei nur dann zu senden, wenn sie keinem der angegebenen Entity-Tags entspricht. Die Syntax lautet:
If-None-Match: Entitäts-Tag
Beispiele sind:
If-None-Match: "xyzzy"
If-None-Match: *
If-Range
Das If-Range-Headerfeld wird verwendet, um nur den Teil des Contents anzufordern, der fehlt, wenn der Inhalt nicht geändert wurde, und den gesamten Content, falls eine Änderung stattgefunden hat. Die Syntax lautet:
If-Range: Entitäts-Tag / HTTP-Datum
Es kann entweder ein Entitäts-Tag oder ein Datum verwendet werden:
If-Range: So, 29. Okt. 2017 19:43:31 GMT
Wenn der Content nicht geändert wurde, gibt der Server den Bytebereich zurück, der vom Range-Header angegeben wurde. Andernfalls wird das gesamte neue Dokument zurückgegeben.
If-Unmodified-Since
Die allgemeine Syntax lautet:
If-Unmodified-Since: HTTP-Datum
Dieses Feld wir analog zum Feld If-Modified-Since verwendet.
Max-Forwards
Max-Forwards teilt Proxy-Servern mit, wie oft eine Nachricht maximal weitergeleitet werden darf. Die Syntax lautet:
Max-Forwards: n
Der Max-Forwards-Wert "n" ist eine Dezimalzahl. Max-Forwards ist nützlich für das Debugging mit der TRACE-Methode, wobei Endlosschleifen vermieden werden. Das Max-Forwards-Headerfeld kann für alle anderen in der HTTP-Spezifikation definierten Methoden ignoriert werden.
Proxy-Authorization
Das Proxy-Authorization-Headerfeld ermöglicht dem Client, sich selbst oder den Benutzer gegenüber einem Proxy zu identifizieren. Syntax:
Proxy-Authorization : Anmeldeinformationen
Range
Das Range oder Bereichsanforderungs-Headerfeld spezifiziert die Teilbereiche des Inhalts, die angefordert werden. Die Syntax lautet:
Range: bytes-unit=first-byte-pos "-" [last-byte-pos]
Die Werte "first-byte-pos" und "last-byte-pos" geben das erste und letzte Byte des eingeschlossen Content an, müssen aber nicht beide angegeben werden. Mehrere Content Bereiche können durch Kommata getrennt aufgeführt werden.
Referer
Über das Referer-Headerfeld kann der Client die Adresse (URL) der Ressource angeben, von der die URL angefordert wurde. Die allgemeine Syntax lautet:
Referer: URL
Beispiel:
Referer: http://www.seobility.net/http/index.htm
TE
Das TE-Headerfeld gibt an, welche Extension-Transfer-Codierung es in der Antwort akzeptiert. Die Syntax lautet:
TE: t-Kodierungen
User-Agent
Dieses Headerfeld sendet Informationen über den Client an den Server. Die Syntax lautet beispielsweise:
User-Agent: Mozilla