HTTP DNT Header

Typ

Der DNT-Header ist ein HTTP-Request-Header, mit dem der Client seine Do-Not-Track-Präferenz an den Server kommuniziert und die Verarbeitung von Tracking-Daten ablehnt.

Syntax

Der Header enthält einen numerischen Wert, der die Tracking-Präferenz des Benutzers angibt.

http
DNT: 1
DNT: 0

Direktiven

Der DNT-Header verwendet folgende Werte:

1
Der Benutzer bevorzugt, nicht getrackt zu werden. APIs sollten auf verhaltensbasiertes Tracking und Profiling verzichten.
0
Der Benutzer erlaubt Tracking explizit. APIs dürfen Tracking und Profiling durchführen.
null
Kein DNT-Header gesendet. Der Benutzer hat keine Präferenz angegeben, was als Zustimmung interpretiert werden kann.

Beispiele

API respektiert Do-Not-Track

Ein Benutzer mit aktiviertem DNT greift auf eine Analytics-API zu:

http
GET /api/v1/analytics/events HTTP/1.1
Host: analytics.example.com
DNT: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)

Die API erkennt DNT und verzichtet auf personalisiertes Tracking:

http
HTTP/1.1 200 OK
Tk: N
Content-Type: application/json

{
  "status": "accepted",
  "tracking": "disabled",
  "message": "Anonymous aggregated data only"
}

API ignoriert DNT und sendet Tracking-Status

Eine Werbe-API ignoriert DNT, kommuniziert dies aber transparent:

http
GET /api/v1/ads/banner HTTP/1.1
Host: ads.example.com
DNT: 1

Die API sendet den Tracking-Status im Response:

http
HTTP/1.1 200 OK
Tk: T
Content-Type: application/json

{
  "ad_id": "AD-12345",
  "tracking_notice": "This service tracks users regardless of DNT",
  "opt_out_url": "https://ads.example.com/opt-out"
}

DNT-Compliance-Flow

Der Ablauf der DNT-Verarbeitung in datenschutzorientierten APIs.

plantuml
@startuml
actor User
participant Browser
participant "API Gateway" as Gateway
participant "Analytics Service" as Analytics
participant "Data Store" as Store

User -> Browser: Enable DNT in settings
Browser -> Browser: Set DNT: 1 for requests

Browser -> Gateway: GET /api/v1/content\nDNT: 1
Gateway -> Gateway: Check DNT header

alt DNT: 1 (tracking disabled)
  Gateway -> Analytics: Log anonymous event\n(no user_id, no profiling)
  Analytics -> Store: Store aggregated data only
  Gateway --> Browser: 200 OK\nTk: N\n[content without tracking]
else DNT: 0 (tracking allowed)
  Gateway -> Analytics: Log personalized event\n(with user_id, profiling)
  Analytics -> Store: Store user profile data
  Gateway --> Browser: 200 OK\nTk: T\n[content with tracking]
else No DNT header
  Gateway -> Analytics: Default tracking policy
  Analytics -> Store: Store per privacy policy
  Gateway --> Browser: 200 OK\nTk: ?
end
@enduml

Vorteile für die Systemarchitektur

  • Ermöglicht datenschutzfreundliche APIs durch transparente Tracking-Präferenz-Kommunikation
  • Tracking-Response-Header (Tk) bietet Transparenz über tatsächliches Tracking-Verhalten
  • Reduziert rechtliche Risiken durch Respektierung von Benutzer-Präferenzen
  • Erlaubt differenzierte Datenverarbeitung basierend auf Consent-Status
  • Unterstützt Privacy-by-Design-Ansätze in API-Architekturen

Spezifikation

Der DNT-Header ist im W3C Tracking Preference Expression (DNT) Standard definiert.

Weitere Spezifikationen

Sec-GPC Header, Tk Header