Der HTTP-Header – eine Übersicht für Anwender
Wenn Sie eine Website aufrufen, sendet Ihr Browser eine Anfrage an den Webserver, um von diesem Daten bzw. Informationen zu erhalten, z. B. eine HTML-Datei (also eine Webseite). Sowohl bei der Anfrage – dem HTTP-Request – als auch bei der Antwort des Servers werden neben den eigentlichen Daten einige Meta-Informationen ausgetauscht. Diese sind im HTTP-Header zusammengefasst. Wir erklären die Funktion des HTTP-Headers und dessen wichtigste Felder.
Domain kaufen
Registrieren Sie Ihre perfekte Domain - Inklusive Wildcard-SSL-Zertifikat
- Inklusive Domain Lock
- Inklusive 2 GB E-Mail-Postfach
Funktion des Headers an einem Beispiel erklärt
Wenn man die Website www.example.com aufruft, sendet der Webserver nicht nur die Website selbst zurück, sondern auch – für Anwender unsichtbar – den folgenden Header:
Die einzelnen Zeilen werden „Header-Felder“ genannt. Jede (außer der ersten) besteht aus einem durch Doppelpunkt getrennten Name-/Werte-Paar.
Erklärungen zu den einzelnen Zeilen:
Die im Beispiel gezeigten Header-Zeilen sind nur ein kleiner Ausschnitt aus den verfügbaren Header-Felder. Insgesamt gibt es fast 100 HTTP-Headerfelder, davon etwa 30 für das Spezifizieren von HTTP-Anfragen, rund 30 für die Antwort des Servers und eine ganze Reihe weiterer Headerfelder, die unterschiedlichen Zwecken dienen und teilweise (noch) nicht standardisiert sind.
Die nachfolgende Übersicht erläutert die wichtigsten Header-Felder.
Erklärungen zu den einzelnen Zeilen:
- HTTP/1.1 ist die gültige HTTP-Protokollversion.
- 200 OK ist der Status-Code. Er sagt, dass der Server die Anfrage empfangen, verstanden und akzeptiert hat.
- Content-Encoding und Content-Type geben über die Art der Datei Auskunft.
- Age, Cache-Control, Expires, Vary und X-Cache beziehen sich auf das Caching (Zwischenspeicherung) der Datei.
- Etag und Last-Modified dienen der Versionskontrolle der gelieferten Datei.
- Server bezeichnet die Webserver-Software.
- Content-Length ist die Dateigröße in Bytes.
Die im Beispiel gezeigten Header-Zeilen sind nur ein kleiner Ausschnitt aus den verfügbaren Header-Felder. Insgesamt gibt es fast 100 HTTP-Headerfelder, davon etwa 30 für das Spezifizieren von HTTP-Anfragen, rund 30 für die Antwort des Servers und eine ganze Reihe weiterer Headerfelder, die unterschiedlichen Zwecken dienen und teilweise (noch) nicht standardisiert sind.
Die nachfolgende Übersicht erläutert die wichtigsten Header-Felder.
Die wichtigsten HTTP-Header-Felder im Überblick
HTTP Request (Anfrage des Clients)
Header-Feld | Bedeutung | Beispiel |
---|---|---|
Accept | Welche Inhaltstypen der Client verarbeiten kann; ist das Feld leer, sind das alle Inhaltstypen. | Accept: text/html, application/xml |
Accept-Charset | Welche Zeichensätze der Client anzeigen kann. | Accept-Charset: utf-8 |
Accept-Encoding | Welche komprimierten Formate der Client unterstützt. | Accept-Encoding: gzip |
Accept-Language | Gewünschte Sprachversion | Accept-Language: de-DE |
Authorization | Authentifizierungsdaten (z. B. für einen Login) | Basic WjbU7D25zTAlV2tZ7== |
Cache-Control | Optionen des Caching-Mechanismus | Cache-Control: no-cache |
Cookie | Cookie, das für diesen Server gespeichert wurde | Cookie: $Version=1; Content=23 |
Content-Length | Länge des Request-Bodys | Content-Length: 212 |
Content-Type | MIME-Typ des Bodys; relevant bei POST- und PUT-Requests | Content-Type: application/x_222-form-urlencoded |
Date | Datum und Zeit des Requests | Date: Mon, 9 March 2020 09:02:22 GMT |
Expect | Formuliert eine Erwartung an den Server, in der Regel das Empfangen eines umfangreichen Requests. | Expect: 100-continue (der Server soll Code 100 senden, wenn er bereit ist, den Request zu empfangen) |
Host | Domain-Name des Servers | Host: ionos.de |
If-Match | Bedingtes Ausführen einer Aktion, abhängig vom Übereinstimmen eines gesendeten Codes | If-Match: „ft678iujhnjio90’pöl“ |
If-Modified-Since | Nur senden, wenn der angefragte Inhalt seit dem angegebenen Zeitpunkt verändert wurde | IF-Modified-Since: Mon 2 Mar 2020 1:00:00 GMT |
If-None-Match | Wie oben, aber über einen ETag (Entity-Tag, s. u.) spezifiziert | If-None-Match: „cxdrt5678iujhgbvb“ |
If-Range | Fordert nur den Teil des Contents an, der geändert wurde bzw. im Client-Cache fehlt | If-Range: Mon 2 Mar 2020 1:00:00 GMT |
If-Unmodified-Since | Analog IF-Modified-Since | If-Modified-Since: Mon 2 Mar 2020 1:00:00 GMT |
Max-Forwards | Definiert, wie oft die Antwort des Servers maximal weitergeleitet werden darf | Max-Forwards: 12 |
Proxy-Authorization | Wird verwendet, um den Client bei einem Proxy-Server zu authentifizieren | Proxy-Authorization: Basic WjbU7D25zTAlV2tZ7== |
Range | Spezifiziert einen Teilbereich des angeforderten Inhalts | Range: bytes=0-9999 |
Referrer | URL der Ressource, von der aus der Request kommt (d. h. von der aus verlinkt wurde) | Referrer: https://example.com/index.html |
TE | Akzeptierte Extension-Transfer-Codierung | TE: gzip, deflate |
User-Agent | User-Agent des Clients (vereinfacht gesagt: der Browser) | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 |
rankingCoach
Erfolgreiches Online-Marketing mit KI - Kostengünstig: Google-Ranking verbessern ohne teure Agentur
- Effizient: Rezensionen beantworten, Posts für Social Media erstellen
- Einfach: Keine SEO- oder Marketing-Kenntnisse nötig
HTTP-Response (Antwort des Servers)
Header-Feld | Bedeutung | Beispiel |
---|---|---|
Accept-Ranges | Welche Einheiten der Server für die Range-Angaben (s. o.) akzeptiert | Accept-Ranges: bytes |
Age | Anzahl der Sekunden, in denen das Objekt im Cache gelegen hat | Age: 2300 |
Allow | Erlaubte Request-Typen für eine bestimmte Ressource | Allow: GET, POST, HEAD |
Cache-Control | Ob und wie lange das Objekt im Cache gehalten werden darf | Cache-Control: max-age=4800 |
Connection | Bevorzugte Art der Verbindung | Connection: close |
Content-Encoding | Art der Komprimierung | Content-Encoding: deflate |
Content-Language | Sprache der Ressource | Content-Language: de-DE |
Content-Length | Größe des Bodys in Bytes | Content-Length: 135674 |
Content-Location | Speicherort der Datei, falls sie von einem anderen Speicherort kommt als angefragt (z. B. bei CDN) | Content-Location: /example.de |
Content-Security-Policy | Sicherheitskonzepte des Servers | Content-Security-Policy: frame-src 'none‘; object-src 'none‘ |
Content-Type | MIME-Typ der angeforderten Datei | Content-Type: text/tml; charset=utf-8 |
Date | Zeitpunkt der Response | Date: Mon 2 Mar 2020 1:00:00 GMT |
ETag | Markiert eine bestimmte Version der Datei | ETag: „vt6789oi8uztgfvbn“ |
Expires | Ab wann die Datei als veraltet betrachtet werden sollte | Expires: Tue 3 Mar 2020 1:00:00 GMT |
Last-Modified | Zeitpunkt der letzten Änderung der Datei | Last-Modified: Mon 2 Mar 2020 1:00:00 GMT |
Location | Kennzeichnet den Speicherort, an den die Anfrage weitergeleitet wurde | Location: https://www.example.com |
Proxy-Authenticate | Sagt, ob und wie der Client sich beim Proxy authentifizieren muss | Proxy-Authenticate: Basic |
Retry-After | Ab wann der Client nochmals anfragen soll, falls die Ressource temporär nicht verfügbar ist (Datum oder Sekunden) | Retry-After: 300 |
Server | Kennung des Servers | Server: Apache |
Set-Cookie | Setzt ein Cookie beim Client | Set-Cookie: UserID=XY; Max-Age=3800; Version=1 |
Transfer-Encoding | Kompressionsmethode | Transfer-Encoding: gpzip |
Vary | Sagt, welche Header-Felder als variierend betrachtet werden sollen, falls eine Datei aus dem Cache angefordert wird. | Vary: User-Agent (= der Server hält verschiedene Dateiversionen je nach User Agent bereit) |
Via | Über welche Proxys die Antwort gesendet wurde. | Via: 1.1www.ionos.de |
Sie können die Response-Header beliebiger Websites ganz einfach auslesen mit diesem kleinen Tool. Als UserAgent stellen Sie am besten php ein.