Wenn Sie eine Website aufrufen, sendet Ihr Browser eine Anfrage an den Webserver, um von diesem Daten bzw. In­for­ma­tio­nen 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 ei­gent­li­chen Daten einige Meta-In­for­ma­tio­nen aus­ge­tauscht. Diese sind im HTTP-Header zu­sam­men­ge­fasst. Wir erklären die Funktion des HTTP-Headers und dessen wich­tigs­te Felder.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

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 un­sicht­bar – den folgenden Header:

Die einzelnen Zeilen werden „Header-Felder“ genannt. Jede (außer der ersten) besteht aus einem durch Dop­pel­punkt ge­trenn­ten Name-/Werte-Paar.

Er­klä­run­gen zu den einzelnen Zeilen:

  • HTTP/1.1 ist die gültige HTTP-Pro­to­koll­ver­si­on.
  • 200 OK ist der Status-Code. Er sagt, dass der Server die Anfrage empfangen, ver­stan­den und ak­zep­tiert 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 (Zwi­schen­spei­che­rung) der Datei.
  • Etag und Last-Modified dienen der Ver­si­ons­kon­trol­le der ge­lie­fer­ten Datei.
  • Server be­zeich­net die Webserver-Software.
  • Content-Length ist die Da­tei­grö­ße in Bytes.

Wie leicht zu erkennen ist, dienen diese Header-In­for­ma­tio­nen haupt­säch­lich der Ab­stim­mung zwischen dem Client (Browser) und dem Server: Es wird si­cher­ge­stellt, dass der Client mit der Form der Datei etwas anfangen kann, die Datei aus­rei­chend aktuell ist und die Da­tei­grö­ße den Er­war­tun­gen des Browsers ent­spricht.

Die im Beispiel gezeigten Header-Zeilen sind nur ein kleiner Aus­schnitt aus den ver­füg­ba­ren Header-Felder. Insgesamt gibt es fast 100 HTTP-Head­er­fel­der, davon etwa 30 für das Spe­zi­fi­zie­ren von HTTP-Anfragen, rund 30 für die Antwort des Servers und eine ganze Reihe weiterer Head­er­fel­der, die un­ter­schied­li­chen Zwecken dienen und teilweise (noch) nicht stan­dar­di­siert sind.

Die nach­fol­gen­de Übersicht erläutert die wich­tigs­ten Header-Felder.

Die wich­tigs­ten HTTP-Header-Felder im Überblick

HTTP Request (Anfrage des Clients)

Header-Feld Bedeutung Beispiel
Accept Welche In­halts­ty­pen der Client ver­ar­bei­ten kann; ist das Feld leer, sind das alle In­halts­ty­pen. Accept: text/html, ap­pli­ca­ti­on/xml
Accept-Charset Welche Zei­chen­sät­ze der Client anzeigen kann. Accept-Charset: utf-8
Accept-Encoding Welche kom­pri­mier­ten Formate der Client un­ter­stützt. Accept-Encoding: gzip
Accept-Language Ge­wünsch­te Sprach­ver­si­on Accept-Language: de-DE
Aut­ho­riza­ti­on Au­then­ti­fi­zie­rungs­da­ten (z. B. für einen Login) Basic WjbU7D25zTAlV2tZ7==
Cache-Control Optionen des Caching-Me­cha­nis­mus Cache-Control: no-cache
Cookie Cookie, das für diesen Server ge­spei­chert 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: ap­pli­ca­ti­on/x_222-form-ur­len­coded
Date Datum und Zeit des Requests Date: Mon, 9 March 2020 09:02:22 GMT
Expect For­mu­liert eine Erwartung an den Server, in der Regel das Empfangen eines um­fang­rei­chen 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 Über­ein­stim­men eines ge­sen­de­ten Codes If-Match: „ft678iujhnjio90’pöl“
If-Modified-Since Nur senden, wenn der an­ge­frag­te Inhalt seit dem an­ge­ge­be­nen 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.) spe­zi­fi­ziert 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-Un­mo­di­fied-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 wei­ter­ge­lei­tet werden darf Max-Forwards: 12
Proxy-Aut­ho­riza­ti­on Wird verwendet, um den Client bei einem Proxy-Server zu au­then­ti­fi­zie­ren Proxy-Aut­ho­riza­ti­on: Basic WjbU7D25zTAlV2tZ7==
Range Spe­zi­fi­ziert einen Teil­be­reich des an­ge­for­der­ten 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 Ak­zep­tier­te Extension-Transfer-Codierung TE: gzip, deflate
User-Agent User-Agent des Clients (ver­ein­facht gesagt: der Browser) Mozilla/5.0 (Windows NT 10.0; Win64; x64) App­le­Web­Kit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
ran­king­Coach
Er­folg­rei­ches Online-Marketing mit KI
  • Kos­ten­güns­tig: Google-Ranking ver­bes­sern ohne teure Agentur
  • Effizient: Re­zen­sio­nen be­ant­wor­ten, Posts für Social Media erstellen
  • Einfach: Keine SEO- oder Marketing-Kennt­nis­se nötig

HTTP-Response (Antwort des Servers)

Header-Feld Bedeutung Beispiel
Accept-Ranges Welche Einheiten der Server für die Range-Angaben (s. o.) ak­zep­tiert 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
Con­nec­tion Be­vor­zug­te Art der Ver­bin­dung Con­nec­tion: close
Content-Encoding Art der Kom­pri­mie­rung 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 Spei­cher­ort der Datei, falls sie von einem anderen Spei­cher­ort kommt als angefragt (z. B. bei CDN) Content-Location: /example.de
Content-Security-Policy Si­cher­heits­kon­zep­te des Servers Content-Security-Policy: frame-src 'none‘; object-src 'none‘
Content-Type MIME-Typ der an­ge­for­der­ten 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 be­trach­tet 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 Kenn­zeich­net den Spei­cher­ort, an den die Anfrage wei­ter­ge­lei­tet wurde Location: https://www.example.com
Proxy-Au­then­ti­ca­te Sagt, ob und wie der Client sich beim Proxy au­then­ti­fi­zie­ren muss Proxy-Au­then­ti­ca­te: 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 Kom­pres­si­ons­me­tho­de Transfer-Encoding: gpzip
Vary Sagt, welche Header-Felder als va­ri­ie­rend be­trach­tet werden sollen, falls eine Datei aus dem Cache an­ge­for­dert wird. Vary: User-Agent (= der Server hält ver­schie­de­ne Da­tei­ver­sio­nen je nach User Agent bereit)
Via Über welche Proxys die Antwort gesendet wurde. Via: 1.1www.ionos.at
Tipp

Sie können die Response-Header be­lie­bi­ger Websites ganz einfach auslesen mit diesem kleinen Tool. Als UserAgent stellen Sie am besten php ein.

Zum Hauptmenü