📜  HTTP 标头 | DNT

📅  最后修改于: 2022-05-13 01:56:23.730000             🧑  作者: Mango

HTTP 标头 | DNT

HTTP DNT 标头是一个请求标头,允许用户选择是否可以通过他们通过 HTTP 与之通信的每个服务器和 Web 应用程序跟踪他们的活动。生成的标头字段是一种允许用户选择加入或退出跟踪的机制。跟踪允许用户体验网络上的个性化内容。选择退出跟踪的选项是随着用户日益增长的隐私需求而创建的。

只有用户启用了跟踪首选项才能设置它。如果用户设置了未启用的跟踪首选项,则不允许用户代理显示跟踪首选项表达式。

句法:

DNT:0
DNT:1

指令:

如果跟踪首选项设置为启用,则会为 HTTP DNT 标头字段生成以下字段值

  • 1:该指令表示用户禁止在目标站点进行跟踪。
  • 0:此指令指示用户允许跟踪或用户已在给定目标站点授予异常。

注意: DNT 标头字段可以有零个或多个扩展名。扩展名由用户代理决定。如果定义了扩展名但未设置跟踪首选项,则可以插入不带字段值的 DNT 头字段。

例子:

  • 这是一个来自 W3C(万维网联盟)的 DNT 标头设置为字段值 - 1 的示例:
    GET /something/here HTTP/1.1
    Host: example.com
    DNT: 1
    
  • 可以使用 JavaScript 的navigator.doNotTrack属性检查 DNT 标头字段的值。
    console.log(navigator.doNotTrack); 
    // prints "1" if DNT is enabled; "0" 
    // if the user opted-in for tracking;
    // prints "null" if unspecified
    
    1. Safari 7.1.3+ , Edge , IE11 及后续版本使用window.doNotTrack而不是navigator.doNotTrack
    2. 在 Firefox 32 之前, navigator.doNotTrack会报告 yes 和 no 的值,而不是 1 和 0。

支持的浏览器: HTTP DNT Header支持的浏览器如下所列

  • 谷歌浏览器
  • IE浏览器
  • 微软边缘
  • 火狐
  • 歌剧