- From: CVS User rfieldin <cvsmail@w3.org>
- Date: Sat, 29 Mar 2014 02:07:51 +0000
- To: public-tracking-commit@w3.org
Update of /w3ccvs/WWW/2011/tracking-protection/drafts In directory gil:/tmp/cvs-serv10396 Modified Files: tracking-dnt.html Log Message: (editorial) rephrase the requirements on generating a DNT header field to match new HTTP standard --- /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html 2014/03/26 04:03:47 1.251 +++ /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html 2014/03/29 02:07:51 1.252 @@ -346,7 +346,7 @@ User agents often include user-installable <dfn>extensions</dfn>, also known as <dfn>add-ons</dfn> or <dfn>plug-ins</dfn>, that are capable of modifying configurations and making network requests. From - the user's perspective, these components are considered part of the + the user's perspective, these extensions are considered part of the user agent and ought to respect the user's configuration of a tracking preference. However, there is no single standard for extension interfaces. A user agent that allows extensions to directly make or @@ -439,35 +439,36 @@ <h3>DNT Header Field for HTTP Requests</h3> <p> - The <dfn>DNT</dfn> header field is hereby defined as the means for - expressing a user's tracking preference via HTTP [[!HTTP]]. + The <dfn>DNT</dfn> header field is a mechanism for expressing the + user's tracking preference in an HTTP request [[!HTTP]]. </p> <pre class="abnf"> <dfn>DNT-field-name</dfn> = "DNT" <dfn>DNT-field-value</dfn> = ( "0" / "1" ) *DNT-extension -<dfn>DNT-extension</dfn> = %x21 / %x23-2B / %x2D-5B / %x5D-7E - ; excludes CTL, SP, DQUOTE, comma, backslash </pre> <p> - A user agent MUST send the <a>DNT</a> header field on all HTTP - requests if (and only if) a tracking preference is - <a>enabled</a>. - A user agent MUST NOT send the <a>DNT</a> header field if a - tracking preference is <a>not enabled</a>. - </p> - <p> - The DNT field-value sent by a user agent MUST begin with the - numeric character "1" (%x31) if a tracking preference is - <a>enabled</a>, the preference is for no tracking, and - there is not an exception for the origin server - targeted by this request. - </p> - <p> - The DNT field-value sent by a user agent MUST begin with the - numeric character "0" (%x30) if a tracking preference is - <a>enabled</a> and the preference is to allow tracking in general - or by specific exception for the origin server targeted by this - request. + A user agent MUST NOT generate a <a>DNT</a> header field if the + user's tracking preference is <a>not enabled</a>. + </p> + <p> + A user agent MUST generate a <a>DNT</a> header field with a + field-value that begins with the numeric character "1" (%x31) if the + user's tracking preference is <a>enabled</a>, their preference is + for <a>DNT:1</a>, and no exception has been granted for the request + target (see <a href="#exceptions" class="sectionRef"></a>). + </p> + <p> + A user agent MUST generate a <a>DNT</a> header field with a + field-value that begins with the numeric character "0" (%x30) if the + user's tracking preference is <a>enabled</a> and their preference is + for <a>DNT:0</a> or an exception has been granted for the request + target. + </p> + <p> + A proxy MUST NOT generate a <a>DNT</a> header field unless it has + been specifically installed or configured to do so by the user + making the request and adheres to the above requirements as if it + were a user agent. </p> <pre class="example"> GET /something/here HTTP/1.1 @@ -476,33 +477,35 @@ </pre> <p> - The remainder of the DNT field-value after the initial character is - reserved for future extensions. User agents that do not implement - such extensions MUST NOT send DNT-extension characters in the DNT - field-value. Servers that do not implement such extensions SHOULD - ignore anything beyond the first character. + The remainder of the DNT field-value, after the initial character, + is reserved for future extensions. DNT extensions can only be + transmitted when a tracking preference is <a>enabled</a>. </p> + <pre class="abnf"> +<dfn>DNT-extension</dfn> = %x21 / %x23-2B / %x2D-5B / %x5D-7E + ; excludes CTL, SP, DQUOTE, comma, backslash + </pre> <p> - DNT extensions are to be interpreted as modifiers to the + For example, additional characters might indicate modifiers to the main preference expressed by the first digit, such that the main - preference will be obeyed if the recipient does not understand the - extension. Hence, a DNT-field-value of "1xyz" can be thought of - as <q>do not track, but if you understand the - refinements defined by x, y, or z, then adjust my preferences - according to those refinements.</q> - DNT extensions can only be transmitted when a tracking - preference is <a>enabled</a>. + preference will be understood if the recipient does not understand + the extension. Hence, a DNT-field-value of "1xyz" can be thought of + as <q>do not track, but if you understand the refinements defined by + x, y, or z, then adjust my preferences according to those + refinements.</q> </p> <p> + User agents that do not implement DNT extensions MUST NOT send + DNT-extension characters in the DNT field-value. + Servers that do not implement DNT extensions SHOULD ignore anything + beyond the first character. + </p> + <p class="note"> The extension syntax is restricted to visible ASCII characters that can be parsed as a single word in HTTP and safely embedded in a JSON string without further encoding (<a href="#status-representation" class="sectionRef"></a>). - Since the DNT header field is intended to be sent on every request, - when enabled, designers of future extensions ought to use as few - extension characters as possible. - </p> - <p class="note">At most one DNT header field can be present in a valid + At most one DNT header field can be present in a valid request [[!HTTP]]. </p> </section>
Received on Saturday, 29 March 2014 02:07:52 UTC