Zum Hauptinhalt springen

14. Header Field Definitions (Header-Feld-Definitionen)

Dieses Kapitel definiert die Syntax und Semantik aller standardmäßigen HTTP-Headerfelder im HTTP/1.1-Standard. Der Absender sollte keine (SHOULD NOT) Headerfelder generieren, die nicht in diesem Kapitel oder in Abschnitt 7.1 (Entitäts-Headerfelder) definiert sind, es sei denn, der Empfänger behandelt sie als Teil des Entitätskörpers.

Klassifizierung der Headerfelder

HTTP-Headerfelder können nach ihrer Funktion in folgende Kategorien eingeteilt werden:

Allgemeine Headerfelder (General Header Fields)

Gelten für Anfrage- und Antwortnachrichten, aber nicht für die übertragene Entität.

Anfrage-Headerfelder (Request Header Fields)

Ermöglichen es dem Client, zusätzliche Informationen über die Anfrage und den Client selbst an den Server zu übermitteln.

Antwort-Headerfelder (Response Header Fields)

Ermöglichen es dem Server, zusätzliche Informationen über die Antwort zu übermitteln, die nicht in die Statuszeile eingefügt werden können.

Entitäts-Headerfelder (Entity Header Fields)

Definieren Metainformationen über den Entitätskörper oder die durch die Anfrage identifizierte Ressource.


Vollständige Liste der HTTP/1.1 Headerfelder

Headerfelder zur Inhaltsverhandlung

HeaderfeldZweckBeispiel
14.1 AcceptGibt vom Client akzeptierbare Medientypen anAccept: text/html, application/json
14.2 Accept-CharsetGibt vom Client akzeptierbare Zeichensätze anAccept-Charset: utf-8, iso-8859-1
14.3 Accept-EncodingGibt vom Client akzeptierbare Inhaltscodierungen anAccept-Encoding: gzip, deflate
14.4 Accept-LanguageGibt vom Client bevorzugte Sprachen anAccept-Language: de, en
14.5 Accept-RangesZeigt an, ob der Server Bereichsanfragen akzeptiertAccept-Ranges: bytes

Authentifizierungs-Headerfelder

HeaderfeldZweckTyp
14.8 AuthorizationEnthält Authentifizierungsinformationen des BenutzeragentenAnfrage-Header
14.33 Proxy-AuthenticateAuthentifizierungs-Challenge des ProxyserversAntwort-Header
14.34 Proxy-AuthorizationVom Client an den Proxy bereitgestellte AuthentifizierungsinformationenAnfrage-Header
14.47 WWW-AuthenticateAuthentifizierungs-Challenge des ServersAntwort-Header

Cache-Kontroll-Headerfelder

HeaderfeldZweckBeschreibung
14.6 AgeZeit, die die Antwort im Proxy-Cache verbracht hatAntwort-Header
14.9 Cache-ControlGibt Caching-Direktiven anAllgemeiner Header
14.21 ExpiresGibt Datum/Uhrzeit des Antwortablaufs anEntitäts-Header
14.32 PragmaImplementierungsspezifische Direktiven (Abwärtskompatibilität)Allgemeiner Header
14.44 VaryZeigt an, welche Anfrage-Header die Cache-Auswahl beeinflussenAntwort-Header

Bedingte Anfrage-Headerfelder

HeaderfeldZweckValidierungsmethode
14.24 If-MatchNur ausführen, wenn ETag übereinstimmtStarke Validierung
14.25 If-Modified-SinceNur ausführen, wenn Ressource geändert wurdeZeitvalidierung
14.26 If-None-MatchNur ausführen, wenn ETag nicht übereinstimmtStarke/Schwache Validierung
14.27 If-RangeBedingte BereichsanfrageKombinierte Validierung
14.28 If-Unmodified-SinceNur ausführen, wenn Ressource nicht geändert wurdeZeitvalidierung

Inhaltsbeschreibungs-Headerfelder

HeaderfeldZweckBeschreibung
14.11 Content-EncodingAuf den Entitätskörper angewendete Codierunggzip, compress, deflate
14.12 Content-LanguageNatürliche Sprache des Entitätskörpersde-DE, en-US
14.13 Content-LengthBytelänge des EntitätskörpersNumerisch
14.14 Content-LocationAlternative Position der EntitätURI
14.15 Content-MD5MD5-Digest des EntitätskörpersBase64-codiert
14.16 Content-RangePosition des partiellen Entitätskörpersbytes 200-1000/1234
14.17 Content-TypeMedientyp des Entitätskörperstext/html; charset=utf-8

Verbindungsverwaltungs-Headerfelder

HeaderfeldZweckBeschreibung
14.10 ConnectionSteuert Optionen der aktuellen Verbindungkeep-alive, close
14.23 HostHost und Portnummer der AnfrageErforderlicher Anfrage-Header
14.39 TEVom Client akzeptierbare Transfer-Encodingstrailers, deflate
14.40 TrailerZeigt im Nachrichten-Trailer vorhandene Headerfelder anChunked-Encoding
14.41 Transfer-EncodingAuf den Nachrichtenkörper angewendetes Transfer-Encodingchunked
14.42 UpgradeAnfrage zum Wechsel zu anderen ProtokollenHTTP/2.0, WebSocket
14.45 ViaZeichnet zwischengeschaltete Proxies und Gateways aufPfadverfolgung

Entitätsvalidierungs-Headerfelder

HeaderfeldZweckTyp
14.19 ETagEntitäts-Tag (eindeutiger Bezeichner)Starker/Schwacher Validator
14.29 Last-ModifiedLetzte Änderungszeit der RessourceZeitstempel

Anfragekontroll-Headerfelder

HeaderfeldZweckBeschreibung
14.7 AllowVon der Ressource unterstützte HTTP-MethodenGET, POST, PUT
14.20 ExpectVom Client erwartetes spezifisches Serververhalten100-continue
14.22 FromE-Mail-Adresse des anfragenden BenutzersInformativ
14.31 Max-ForwardsMaximale Anzahl von Weiterleitungen für TRACE/OPTIONS-AnfragenNumerisch
14.35 RangeAnfrage für partiellen Inhalt der Entitätbytes=0-499
14.36 RefererUrsprungsadresse der Anfrage-URIURI

Antwortkontroll-Headerfelder

HeaderfeldZweckBeschreibung
14.18 DateErstellungsdatum und -zeit der NachrichtHTTP-Datumsformat
14.30 LocationURI der Umleitung oder neu erstellten RessourceAbsolute/Relative URI
14.37 Retry-AfterSchlägt vor, wann der Client es erneut versuchen sollteDatum oder Sekunden
14.38 ServerSoftwareinformationen des UrsprungsserversSoftwarename und Version
14.46 WarningZusätzliche WarninformationenDreistelliger Warncode

Benutzeragenten-Informationen

HeaderfeldZweckBeschreibung
14.43 User-AgentInformationen über den anfragenden BenutzeragentenBrowser-Identifikation

Syntaxregeln für Headerfelder

Die Syntaxregeln für alle HTTP/1.1-Headerfeldwerte werden in Abschnitt 2.2 (Grundregeln) und in diesem Abschnitt beschrieben.

Allgemeine Syntaxregeln

message-header = field-name ":" [ field-value ]
field-name = token
field-value = *( field-content | LWS )

Mehrwertige Headerfelder

Einige Headerfelder können mehrere Werte enthalten, die auf zwei Arten dargestellt werden können:

  1. Ein einzelnes Headerfeld, Werte durch Kommas getrennt:

    Accept: text/html, application/json, */*
  2. Mehrere Headerfelder mit demselben Namen:

    Accept: text/html
    Accept: application/json
    Accept: */*

Datums-/Zeitformate

HTTP-Anwendungen müssen die folgenden drei Datums-/Zeitformate akzeptieren:

Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C asctime() format

Wichtige Hinweise

Erweiterbarkeit der Headerfelder

HTTP/1.1 erlaubt Erweiterungs-Headerfelder, aber Empfänger müssen in der Lage sein, unbekannte Headerfelder zu verarbeiten:

  • Proxies - müssen nicht erkannte Headerfelder weiterleiten
  • Benutzeragenten - sollten nicht erkannte Headerfelder ignorieren

Reihenfolge der Headerfelder

Sofern in der Headerfelddefinition nicht anders angegeben, ist die Reihenfolge der Headerfelder nicht wichtig. Es wird jedoch empfohlen, zuerst allgemeine Headerfelder, dann Anfrage- oder Antwort-Headerfelder und schließlich Entitäts-Headerfelder zu senden.

Größenbeschränkungen für Headerfelder

Obwohl HTTP keine vordefinierte Grenze für die Länge von Headerfeldern festlegt, sollten Implementierungen darauf vorbereitet sein, Headerfelder beliebiger vernünftiger Länge zu akzeptieren.


Verwandte Referenzen

  • Für die vollständige Definition der Headerfelder siehe RFC 2616 Kapitel 14 Original
  • Für aktualisierte Headerfeldspezifikationen siehe RFC 7230-7235 (HTTP/1.1 neue Version)
  • IANA HTTP-Headerfeld-Registrierung: https://www.iana.org/assignments/message-headers

Hinweis: Dieses Kapitel bietet einen Überblick über alle standardmäßigen HTTP/1.1-Headerfelder. Jedes Headerfeld hat detaillierte Syntaxregeln, Verwendungsszenarien und Beispiele. In der praktischen Anwendung ist das Verständnis der korrekten Verwendung dieser Headerfelder entscheidend für den Aufbau standardkonformer HTTP-Anwendungen.