bg_image
header

Bearer Token

Ein Bearer Token ist eine Art von Zugriffstoken, das zur Authentifizierung und Autorisierung in Webanwendungen und APIs verwendet wird. Der Begriff "Bearer" bedeutet „Inhaber“, was bedeutet, dass jeder, der dieses Token besitzt, Zugriff auf die geschützten Ressourcen hat – ohne zusätzliche Überprüfung.

Merkmale eines Bearer Tokens:

  • Selbsttragend: Enthält alle nötigen Informationen zur Authentifizierung.
  • Keine zusätzliche Identitätsprüfung: Wer das Token hat, kann es nutzen.
  • Wird in HTTP-Headern übertragen: Normalerweise als Authorization: Bearer <token>.
  • Oft zeitlich begrenzt: Hat eine Ablaufzeit, um Missbrauch zu reduzieren.
  • Wird häufig mit OAuth 2.0 verwendet: Zum Beispiel bei der Authentifizierung mit Drittanbieterdiensten.

Beispiel einer HTTP-Anfrage mit Bearer Token:

GET /geschuetzte-daten HTTP/1.1
Host: api.example.com
Authorization: Bearer abcdef123456

Risiken:

  • Kein Schutz bei Diebstahl: Wenn jemand das Token abfängt, kann er sich ausgeben.
  • Muss sicher gespeichert werden: Sollte nicht im Client-Code oder in URLs stehen.

💡 Tipp: Um die Sicherheit zu erhöhen, kann man Token mit kurzen Laufzeiten verwenden und sie nur über HTTPS übertragen.

 

 


Entity Header

Entity-Header sind HTTP-Header, die Informationen über den Hauptteil (Body) einer Nachricht enthalten. Sie können sowohl in Anfragen als auch in Antworten vorkommen und beschreiben Eigenschaften des Inhalts, wie Typ, Länge, Kodierung oder letzte Änderung.

Wichtige Entity-Header:

1. Content-Type

  • Gibt den Medientyp (MIME-Typ) des Inhalts an.
  • Beispiel:
Content-Type: application/json; charset=UTF-8

2. Content-Length

  • Gibt die Größe des Inhalts in Bytes an.
  • Beispiel:
Content-Length: 1024

3. Content-Encoding

  • Zeigt an, ob der Inhalt komprimiert wurde (z. B. gzip).
  • Beispiel:
Content-Encoding: gzip

4. Content-Language

  • Gibt die Sprache des Inhalts an.
  • Beispiel:
Content-Language: de-DE

5. Cache-Location

  • Zeigt die URL oder den Speicherort der eigentlichen Ressource an.
  • Beispiel:
Content-Location: /files/document.pdf

6. Last-Modified

  • Gibt an, wann der Inhalt zuletzt geändert wurde.
  • Beispiel:
Last-Modified: Tue, 30 Jan 2025 14:20:00 GMT

7. ETag

  • Eine eindeutige Kennung für eine Version der Ressource, nützlich für Caching.
  • Beispiel:
ETag: "abc123xyz"

8. Expires

  • Gibt an, wann der Inhalt als veraltet gilt.
  • Beispiel:
Expires: Fri, 02 Feb 2025 12:00:00 GMT

9. Allow

  • Listet die erlaubten HTTP-Methoden für eine Ressource auf.
  • Beispiel:
Allow: GET, POST, HEAD

10. Refresh (Nicht standardisiert, aber oft verwendet)

  • Weist den Browser an, die Seite nach einer bestimmten Zeit neu zu laden.
  • Beispiel:
Refresh: 10; url=https://example.com

Diese Header helfen dabei, den Inhalt einer HTTP-Nachricht genau zu beschreiben, Caching-Strategien zu optimieren und die korrekte Darstellung sicherzustellen.

 


Antwort Header

Antwort-Header (Response Headers) sind HTTP-Header, die vom Server an den Client gesendet werden. Sie enthalten Informationen über die Serverantwort, wie Statuscodes, Inhaltstypen, Sicherheitsrichtlinien oder Caching-Regeln.

Wichtige Antwort-Header:

1. Server

  • Zeigt an, welche Software oder Technologie der Server verwendet.
  • Beispiel:
Server: Apache/2.4.41 (Ubuntu)

2. Date

  • Gibt das Datum und die Uhrzeit der Serverantwort im GMT-Format an.
  • Beispiel:
Date: Wed, 31 Jan 2025 12:34:56 GMT

3. Content-Type

  • Gibt den Medientyp der Antwort an.
  • Beispiel:
Content-Type: text/html; charset=UTF-8

4. Content-Length

  • Gibt die Größe der Antwort in Bytes an.
  • Beispiel:
Content-Length: 3456

5. Cache-Control

  • Bestimmt das Caching-Verhalten der Antwort.
  • Beispiel:
Cache-Control: max-age=3600, must-revalidate

6. Set-Cookie

  • Sendet Cookies an den Client, um sie für spätere Anfragen zu speichern.
  • Beispiel:
Set-Cookie: sessionId=abc123; Path=/; Secure; HttpOnly

7. ETag

  • Eine eindeutige Kennung für eine bestimmte Version der Ressource, um Caching zu optimieren.
  • Beispiel:
ETag: "5d8c72a5f8d9f"

8. Location

  • Gibt eine Weiterleitungs-URL an, falls eine Ressource umgezogen ist.
  • Beispiel:
Location: https://www.new-url.com/

9. Access-Control-Allow-Origin

  • Ermöglicht Cross-Origin-Anfragen (CORS).
  • Beispiel:
Access-Control-Allow-Origin: *

10. Strict-Transport-Security (HSTS)

  • Erzwingt die Nutzung von HTTPS für zukünftige Anfragen.
  • Beispiel:
Strict-Transport-Security: max-age=31536000; includeSubDomains

Antwort-Header helfen dem Client, die empfangene Antwort richtig zu interpretieren, Sicherheitsmaßnahmen einzuhalten und Caching-Strategien zu nutzen.


HTTP Anfrage Header

Anfrage-Header (Request Headers) sind HTTP-Header, die ein Client (z. B. ein Webbrowser oder eine API-Anfrage) an den Server sendet, um zusätzliche Informationen über die Anfrage, den Client oder die gewünschten Inhalte bereitzustellen.

Wichtige Anfrage-Header:

1. Host

  • Gibt die Ziel-Domain oder IP-Adresse des Servers an.
  • Beispiel:
Host: www.example.com

2. User-Agent

  • Enthält Informationen über den Client, wie Browser-Typ oder Betriebssystem.
  • Beispiel:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

3. Accept

  • Definiert, welche Inhaltstypen der Client akzeptieren kann.
  • Beispiel:
Accept: text/html, application/json

4. Accept-Language

  • Gibt die bevorzugte Sprache des Clients an.
  • Beispiel:
Accept-Language: de-DE, en-US

5. Accept-Encoding

  • Zeigt an, welche Kompressionsformate der Client unterstützt.
  • Beispiel:
Accept-Encoding: gzip, deflate, br

6. Referer

  • Gibt die vorherige Seite an, von der der Benutzer gekommen ist.
  • Beispiel:
Referer: https://www.google.com/

7. Authorization

  • Wird für die Authentifizierung bei geschützten Ressourcen verwendet.
  • Beispiel (Basic Auth):
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

8. Cookie

  • Enthält Cookies, die der Server zuvor gesetzt hat.
  • Beispiel:
Cookie: sessionId=abc123; theme=dark

9. Content-Type (bei POST/PUT-Anfragen)

  • Gibt das Datenformat des Anfrageinhalts an.
  • Beispiel:
Content-Type: application/json

10. Origin

  • Gibt die Ursprungs-URL an und wird oft bei Cross-Origin-Anfragen genutzt.
  • Beispiel:
Origin: https://www.example.com

Diese Header helfen dem Server, die Anfrage zu verstehen und entsprechend zu reagieren, indem sie Details über den Client, die bevorzugten Inhalte und Sicherheitsaspekte liefern.