Content-Type ·
Cache-Control ·
Authorization ·
Access-Control-Allow-Origin ·
Set-Cookie
HTTP-Header steuern die Kommunikation zwischen Client und Server – sie definieren Inhaltstypen, Caching, Authentifizierung, Sicherheitsrichtlinien und vieles mehr.
Request Header werden vom Client an den Server gesendet. Sie enthalten Informationen über den Client, die gewünschte Antwort und Authentifizierungsdaten.
| Header | Beschreibung | Beispiel |
|---|---|---|
| Host | Domainname des Servers (virtuelles Hosting) | api.example.com |
| User-Agent | Client-Informationen (Browser, Betriebssystem) | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 |
| Accept | Erwartete Antwortformate (MIME-Types) | application/json, text/plain, */* |
| Accept-Language | Bevorzugte Sprache(n) | de-DE,de;q=0.9,en;q=0.8 |
| Accept-Encoding | Unterstützte Komprimierungsmethoden | gzip, deflate, br |
| Authorization | Authentifizierungsdaten (Basic, Bearer Token) | Bearer eyJhbGciOiJIUzI1NiIs... |
| Cookie | Vorhandene Cookies | sessionId=abc123; theme=dark |
| Content-Type | Medientyp des Request-Bodys (bei POST/PUT) | application/json |
| Content-Length | Größe des Request-Bodys in Bytes | 42 |
| Referer | Seite, von der der Client kommt | https://www.google.com/search?q=api |
| Origin | Ursprungsdomain (für CORS) | https://example.com |
| If-Modified-Since | Caching: Nur antworten, wenn neuer | Wed, 21 Oct 2023 07:28:00 GMT |
| If-None-Match | Caching: Nur antworten, wenn ETag nicht stimmt | "abc123" |
User-Agent-Header ist oft der erste Anhaltspunkt bei der Fehlersuche – er zeigt, welcher Browser oder Client die Anfrage stellt und ob es sich um einen Crawler handelt.
Response Header werden vom Server an den Client gesendet. Sie enthalten Metadaten über die Antwort – wie Inhaltstyp, Größe, Server-Informationen und Cookies.
| Header | Beschreibung | Beispiel |
|---|---|---|
| Content-Type | Medientyp der Antwort | application/json; charset=utf-8 |
| Content-Length | Größe der Antwort in Bytes | 42 |
| Server | Server-Software | nginx/1.18.0 |
| Set-Cookie | Cookie setzen | session=abc123; Path=/; Secure; HttpOnly |
| Location | Weiterleitungsziel (bei 3xx) | https://example.com/neue-seite |
| ETag | Prüfsumme der Ressource (Caching) | "abc123" |
| Last-Modified | Letztes Änderungsdatum | Wed, 21 Oct 2023 07:28:00 GMT |
| Expires | Ablaufzeit für Caching | Thu, 01 Dec 2023 16:00:00 GMT |
| Cache-Control | Caching-Richtlinien | max-age=3600, public |
| Content-Encoding | Komprimierungsmethode | gzip |
| Content-Disposition | Vorschlag für Dateinamen (Download) | attachment; filename="report.pdf" |
| Retry-After | Wartezeit bei 503 (Service Unavailable) | 3600 |
Server-Header kann aus Sicherheitsgründen deaktiviert oder gefälscht werden, um Angreifern keine Informationen über die verwendete Software zu geben.
Caching Header steuern, wie lange und unter welchen Bedingungen eine Antwort vom Client oder Proxy zwischengespeichert werden darf.
| Direktive | Beschreibung |
|---|---|
| max-age=3600 | Cache für 3600 Sekunden (1 Stunde) |
| no-cache | Jede Anfrage prüfen (Cache validieren) |
| no-store | Nicht cachen (keine Speicherung) |
| public | Darf von jedem Cache gespeichert werden |
| private | Nur für den Client (nicht für Shared Cache) |
| must-revalidate | Vor Verwendung validieren |
| immutable | Ressource ändert sich nie (für Hash-Files) |
| max-age=0, must-revalidate | Immer validieren (ähnlich no-cache) |
| stale-while-revalidate | Stale Inhalte während der Validierung ausliefern |
public, max-age=31536000, immutable. Für HTML-Seiten no-cache, must-revalidate. Für sensible Daten no-store, private.
Sicherheits-Header steuern Authentifizierung, Cookies und Cross-Origin-Ressourcen-Freigabe (CORS).
| Header | Beschreibung | Beispiel |
|---|---|---|
| Authorization | Authentifizierungsdaten | Bearer token, Basic dXNlcjpwYXNz |
| WWW-Authenticate | Aufforderung zur Authentifizierung (401) | Bearer realm="api" |
| Set-Cookie | Cookie setzen (Response) | session=abc; Secure; HttpOnly; SameSite=Lax; Max-Age=3600 |
| Cookie | Cookies senden (Request) | session=abc; theme=dark |
| Access-Control-Allow-Origin | Erlaubte Domains für CORS | https://example.com, * |
| Access-Control-Allow-Methods | Erlaubte HTTP-Methoden | GET, POST, PUT, DELETE |
| Access-Control-Allow-Headers | Erlaubte Headers | Content-Type, Authorization |
| Access-Control-Allow-Credentials | Credentials erlaubt | true |
| Access-Control-Max-Age | Preflight-Cache-Dauer | 86400 |
| Access-Control-Expose-Headers | Headers für Client sichtbar | X-Custom-Header |
Access-Control-Allow-Credentials: true als auch einen expliziten Access-Control-Allow-Origin (kein *) setzen.
CORS (Cross-Origin Resource Sharing) ist ein Mechanismus, der einer Webseite einer Domain erlaubt, Ressourcen einer anderen Domain anzufordern. Die Header steuern, wer welche Anfragen stellen darf.
| Header | Beschreibung |
|---|---|
| Access-Control-Allow-Origin | Erlaubte Domain (oder *) |
| Access-Control-Allow-Methods | Erlaubte HTTP-Methoden |
| Access-Control-Allow-Headers | Erlaubte Request-Header |
| Access-Control-Allow-Credentials | Ob Credentials (Cookies) mitgesendet werden dürfen |
| Access-Control-Max-Age | Wie lange der Preflight-Cache gültig ist (Sekunden) |
| Access-Control-Expose-Headers | Header, die der Client lesen darf |
| Access-Control-Request-Method | (Preflight) Gewünschte Methode |
| Access-Control-Request-Headers | (Preflight) Gewünschte Header |
Access-Control-Max-Age, um die Anzahl der Preflight-Requests zu reduzieren.
Security Header schützen Webanwendungen vor häufigen Angriffen wie Clickjacking, XSS, MIME-Typ-Exploits und SSL-Stripping.
| Header | Beschreibung | Empfehlung |
|---|---|---|
| Strict-Transport-Security | HSTS – Erzwingt HTTPS für eine bestimmte Zeit | max-age=31536000; includeSubDomains; preload |
| Content-Security-Policy | CSP – Erlaubte Quellen für Skripte, Styles, Bilder etc. | default-src 'self'; script-src 'self' |
| X-Frame-Options | Verhindert Clickjacking (Einbettung in Frame) | DENY oder SAMEORIGIN |
| X-Content-Type-Options | Verhindert MIME-Typ-Sniffing | nosniff |
| X-XSS-Protection | XSS-Schutz (veraltet, CSP ist besser) | 0 (oder 1; mode=block) |
| Referrer-Policy | Kontrolliert die Weiterleitung von Referrer-Informationen | strict-origin-when-cross-origin |
| Permissions-Policy | Kontrolliert den Zugriff auf Browser-Features (z.B. Geolocation) | geolocation=() |
report-only-Modus, um zu testen, welche Ressourcen geblockt werden, bevor Sie es aktivieren. Der Report-URI kann an einen Endpoint gesendet werden.
Authorization
Content-Type
Cache-Control
Set-Cookie
Access-Control-*
CSP
Content-Type: application/json ·
Cache-Control: max-age=3600 ·
Authorization: Bearer token