DNT
The HTTP DNT request header is an unofficial, deprecated header that expressed a user's tracking preference. Voluntary compliance and lack of legal backing led to its removal from major browsers.
Deprecated
The W3C Tracking Protection Working Group closed in January 2019 without advancing DNT beyond a Working Group Note. Safari removed DNT in 2019, Firefox removed DNT in February 2025. The Sec-GPC header (Global Privacy Control) replaces DNT with legal enforceability under CCPA and other privacy laws.
Note
The "X-" naming convention does not apply to DNT, but the header is not registered in the IANA HTTP Field Name Registry and never reached W3C Recommendation status.
Usage
The DNT header communicates a tracking preference
from the browser to the server. A value of 1
signals the user prefers not to be tracked. A value
of 0 signals consent to tracking or an active
exception. When the header is absent, the user has
not expressed a preference.
The header originated from a 2009 prototype Firefox add-on and gained momentum after the U.S. Federal Trade Commission proposed a "Do Not Track" mechanism in December 2010. Firefox shipped DNT support in March 2011, followed by Internet Explorer, Chrome, and Safari.
Adoption failed because compliance was voluntary. No legal mandate or enforcement mechanism existed, and the advertising industry largely ignored the signal. The W3C Tracking Protection Working Group worked on a formal specification from 2011 to 2019 but closed without reaching consensus. Microsoft enabling DNT by default in Internet Explorer 10 further eroded industry trust in the signal as a genuine expression of user choice.
Apple removed DNT from Safari 12.1 in March 2019, citing its use as a fingerprinting variable. Mozilla removed DNT from Firefox 135 in February 2025, recommending Global Privacy Control instead. Chromium-based browsers (Chrome, Edge) still expose the setting but disable DNT by default.
Values
1
The 1 value indicates the user prefers not to be
tracked. The browser sends this when the user
enables the Do Not Track setting.
0
The 0 value indicates the user consents to
tracking or has granted a site-specific exception.
Unset
When the header is absent from the request, the user has not expressed a tracking preference.
Example
A browser with Do Not Track enabled sends the header
on every request. The value 1 signals a preference
against tracking.
GET /articles HTTP/1.1
Host: example.re
DNT: 1
A response from a server acknowledging the tracking preference using the Tk (Tracking Status) header. The Tk header is also deprecated and triggers no browser behavior.
HTTP/1.1 200 OK
Tk: N
Content-Type: text/html
See also
- Tracking Preference Expression (W3C Working Group Note)
- Tracking Compliance and Scope (W3C Working Group Note)
- Sec-GPC
- HTTP headers