&midd
HTTP-Header sind die unbesungenen Helden der Webkommunikation. Jedes Mal, wenn Sie eine Webseite laden, ein Video streamen oder ein Formular absenden, arbeiten Dutzende von Headern hinter den Kulissen, um dies zu ermöglichen. Sie übertragen wichtige Metadaten über Anfragen und Antworten, steuern das Caching-Verhalten, setzen Sicherheitsrichtlinien durch und ermöglichen moderne Webfunktionen.
HTTP-Header zu verstehen ist nicht mehr nur für Backend-Entwickler wichtig. Frontend-Ingenieure benötigen sie für die API-Integration, DevOps-Teams verlassen sich auf sie für die Leistungsoptimierung, und Sicherheitsexperten nutzen sie, um Anwendungen vor Angriffen zu schützen. Dieser Leitfaden erklärt alles, was Sie über HTTP-Header wissen müssen, von grundlegenden Konzepten bis hin zu fortgeschrittenen Sicherheitsimplementierungen.
HTTP-Header sind Schlüssel-Wert-Paare, die zwischen Clients und Servern während der HTTP-Kommunikation gesendet werden. Sie liefern wesentlichen Kontext über die Anfrage oder Antwort, einschließlich Inhaltstyp, Kodierung, Authentifizierungsdaten, Caching-Direktiven und Sicherheitsrichtlinien.
Header folgen einem einfachen Format: Header-Name: value. Jeder Header erscheint in einer eigenen Zeile, und eine Leerzeile trennt Header vom Nachrichtentext. Während HTTP/1.1 Klartext-Header verwendet, komprimiert HTTP/2 und HTTP/3 sie mit HPACK- bzw. QPACK-Algorithmen.
Header fallen in vier Hauptkategorien:
Moderne Webanwendungen tauschen typischerweise 20-40 Header pro Anfrage-Antwort-Zyklus aus. Einige sind obligatorisch (wie Host in HTTP/1.1), während andere optional, aber aus Sicherheits- und Leistungsgründen sehr empfohlen sind.
Profi-Tipp: Verwenden Sie die Netzwerk-Registerkarte der DevTools Ihres Browsers, um Header in Echtzeit zu inspizieren. Dies ist von unschätzbarem Wert für das Debuggen von API-Problemen und das Verstehen, wie Drittanbieterdienste mit Ihrer Anwendung kommunizieren.
Request-Header teilen dem Server mit, was der Client möchte und was er verarbeiten kann. Sie enthalten Informationen über akzeptierte Inhaltstypen, bevorzugte Sprachen, Authentifizierungsdaten und die Fähigkeiten des Clients.
Hier sind die wichtigsten Request-Header, denen Sie begegnen werden:
| Header | Zweck | Beispiel |
|---|---|---|
Host |
Gibt den Domainnamen des Servers an | Host: example.com |
User-Agent |
Identifiziert die Client-Software | User-Agent: Mozilla/5.0... |
Accept |
Medientypen, die der Client verarbeiten kann | Accept: application/json |
Accept-Language |
Bevorzugte Sprachen für die Antwort | Accept-Language: en-US,en;q=0.9 |
Accept-Encoding |
Unterstützte Komprimierungsalgorithmen | Accept-Encoding: gzip, br |
Authorization |
Authentifizierungsdaten | Authorization: Bearer token123 |
Cookie |
Gespeicherte Cookies für die Domain | Cookie: session=abc123 |
Referer |
URL der vorherigen Seite | Referer: https://google.com |
Der Accept-Header verwendet Qualitätswerte (q-Werte), um Präferenzen anzugeben, wenn mehrere Formate akzeptabel sind. Werte reichen von 0 bis 1, wobei 1 die höchste Priorität ist:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Dies teilt dem Server mit: "Ich bevorzuge HTML oder XHTML, aber ich akzeptiere XML mit 90% Präferenz und alles andere mit 80% Präferenz." Server verwenden dies, um Content Negotiation durchzuführen und das am besten geeignete Format zurückzugeben.
Der User-Agent-Header identifiziert die Client-Software, das Betriebssystem und den Gerätetyp. Obwohl nützlich für Analysen und das Bereitstellen gerätespezifischer Inhalte, ist er auch notorisch unzuverlässig aufgrund von User-Agent-Spoofing.
Moderne Best Practice ist die Verwendung von Feature Detection anstelle von User-Agent-Sniffing. Der Header bleibt jedoch wertvoll für Logging, Debugging und Bot-Erkennung.
Schneller Tipp: Testen Sie Ihre API-Endpunkte mit verschiedenen User-Agent-Strings, um sicherzustellen, dass sie für legitime Clients nicht brechen. Einige Server blockieren fälschlicherweise Anfragen mit unbekannten User-Agents.
Response-Header liefern Metadaten über die Antwort des Servers, einschließlich Inhaltstyp, Caching-Anweisungen, Sicherheitsrichtlinien und Serverinformationen. Sie sind entscheidend für die korrekte Inhaltsdarstellung, Leistungsoptimierung und Sicherheit.
Wichtige Response-Header umfassen:
| Header | Zweck | Beispiel |
|---|---|---|
Content-Type |
Medientyp des Antworttexts | Content-Type: text/html; charset=utf-8 |
Content-Length |
Größe des Antworttexts in Bytes | Content-Length: 1234 |
Content-Encoding |
Verwendeter Komprimierungsalgorithmus | Content-Encoding: gzip |
Set-Cookie |
Sendet Cookies an den Client | Set-Cookie: id=a3; Secure; HttpOnly |
Location |
URL für Weiterleitungen | Location: https://example.com/new |
Server |
Informationen über die Server-Software | Server: nginx/1.18.0 |
Date |
Datum und Uhrzeit, zu der die Antwort gesendet wurde | Date: Mon, 31 Mar 2026 12:00:00 GMT |
ETag |
Eindeutige Kennung für Ressourcenversion | ETag: "33a64df551425fcc55e" |
Der Content-Type-Header ist entscheidend für die korrekte Inhaltsdarstellung. Er teilt dem Browser mit, wie der Antworttext zu interpretieren ist. Fügen Sie immer die Zeichenkodierung (normalerweise UTF-8) hinzu, um Kodierungsprobleme zu vermeiden:
Content-Type: application/json; charset=utf-8
Content-Type: text/html; charset=utf-8
Content-Type: image/png
Fehlende oder falsche Content-Type-Header führen dazu, dass Browser den Inhaltstyp erraten (MIME-Sniffing), was zu Sicherheitslücken und Darstellungsproblemen führen kann.
Der Set-Cookie-Header erstellt Cookies auf der Client-Seite. Moderne Cookies sollten immer Sicherheitsattribute enthalten:
Set-Cookie: sessionId=abc123; Secure; HttpOnly; SameSite=Strict; Max-Age=3600
Sicherheits-Header sind Ihre erste Verteidigungslinie gegen gängige Web-Schwachstellen. Sie weisen Browser an, Sicherheitsrichtlinien durchzusetzen, die Benutzer vor Angriffen wie XSS, Clickjacking und Man-in-the-Middle-Angriffen schützen.
Jede Produktionsanwendung sollte diese wesentlichen Sicherheits-Header implementieren:
CSP verhindert XSS-Angriffe, indem es kontrolliert, welche Ressourcen der Browser laden kann. Es ist einer der mächtigsten Sicherheits-Header, erfordert aber sorgfältige Konfiguration:
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.example.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' https://fonts.gstatic.com
Beginnen Sie mit einer restriktiven Richtlinie und lockern Sie sie nach Bedarf schrittweise. Verwenden Sie Content-Security-Policy-Report-Only, um Richtlinien zu testen, ohne Ihre Website zu beschädigen.
HSTS zwingt Browser, HTTPS für alle zukünftigen Anfragen an Ihre Domain zu verwenden und verhindert so Protokoll-Downgrade-Angriffe:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Die preload-Direktive ermöglicht es Ihnen, Ihre Domain zur HSTS-Preload-Liste einzureichen, die fest in Browser einprogrammiert ist. Dies bietet headers
curl -H "