- From: Roy Fielding via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 07 Aug 2012 07:06:53 +0000
- To: public-tracking-commit@w3.org
Update of /w3ccvs/WWW/2011/tracking-protection/drafts In directory hutz:/tmp/cvs-serv3786 Modified Files: tracking-dnt.html Log Message: (editorial) inline the tracking status representation ABNF and move use section after definition Index: tracking-dnt.html =================================================================== RCS file: /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html,v retrieving revision 1.141 retrieving revision 1.142 diff -u -d -r1.141 -r1.142 --- tracking-dnt.html 7 Aug 2012 06:38:44 -0000 1.141 +++ tracking-dnt.html 7 Aug 2012 07:06:51 -0000 1.142 @@ -839,39 +839,16 @@ </p> </section> - <section id='status-checks-not-tracked'> - <h4>Status Checks are Not Tracked</h4> - <p> - When sending a request for the tracking status, a user agent - SHOULD include any cookie data [[COOKIES]] (set prior to the - request) that would be sent in a normal request to that origin - server, since that data might be needed by the server to determine - the current tracking status. For example, the cookie data might - indicate a prior out-of-band decision by the user to opt-out or - consent to tracking by that origin server. - </p> - <p> - All requests on the tracking status resource space, including - the site-wide tracking status resource, MUST NOT be tracked, - irrespective of the presence, value, or absence of a DNT header - field, cookies, or any other information in the request. - In addition, all responses to those requests, including the - responses to redirected tracking status requests, MUST NOT - have Set-Cookie or Set-Cookie2 header fields and - MUST NOT have content that initiates tracking beyond what was - already present in the request. - A user agent SHOULD ignore, or treat as an error, any Set-Cookie - or Set-Cookie2 header field received in such a response. - </p> - </section> - <section id='status-representation'> <h3>Representation</h3> <p> The representation of a tracking status resource SHALL be provided in the "application/json" format [[!RFC4627]] and MUST conform to - the ABNF in <a href="#status-abnf" class="sectionRef"></a>. - The following is an example tracking status representation that + the ABNF for <a>status-object</a> (except that the members within + each member-list MAY be provided in any order). + </p> + <p> + The following example tracking status representation illustrates all of the fields defined by this specification, most of which are optional. </p> @@ -895,15 +872,29 @@ </pre> <p> A tracking status representation consists of a single - <a>status-object</a> containing members that describe the tracking - status applicable to this user agent's request. + <a>status-object</a> containing members that describe the + tracking status applicable to the designated resource. </p> + <pre class="abnf"> +<dfn>status-object</dfn> = begin-object member-list end-object + +<dfn>member-list</dfn> = tracking ns tracking-v + [ vs same-party ns same-party-v ] + [ vs partners ns partners-v ] + [ vs audit ns audit-v ] + [ vs policy ns policy-v ] + [ vs control ns control-v ] + *( vs extension ) + </pre> <p> A <a>status-object</a> MUST have a member named <code><a>tracking</a></code> that contains a single character tracking status value (<a href="#tracking-status-value" class="sectionRef"></a>). </p> + <pre class="abnf"> +<dfn>tracking</dfn> = %x22 "tracking" %x22 + </pre> <p> For example, the following demonstrates a minimal tracking status representation that is applicable to any resource that does not @@ -919,12 +910,20 @@ they are referenced on this site, since all data collected via those references share the same data controller. </p> + <pre class="abnf"> +<dfn>same-party</dfn> = %x22 "same-party" %x22 +<dfn>same-party-v</dfn> = array-of-strings + </pre> <p> An OPTIONAL member named <code><a>partners</a></code> MAY be provided with an array value containing a list of domain names for third-party services that might be invoked while using this site but do not share the same data controller as this site. </p> + <pre class="abnf"> +<dfn>partners</dfn> = %x22 "partners" %x22 +<dfn>partners-v</dfn> = array-of-strings + </pre> <p> An OPTIONAL member named <code><a>audit</a></code> MAY be provided with an array value containing a list of URI references @@ -934,6 +933,10 @@ results of that audit; however, if such a resource is not available, a reference to the auditor is sufficient. </p> + <pre class="abnf"> +<dfn>audit</dfn> = %x22 "audit" %x22 +<dfn>audit-v</dfn> = array-of-strings + </pre> <p> An OPTIONAL member named <code><a>policy</a></code> MAY be provided with a string value containing a URI-reference to a @@ -942,6 +945,10 @@ scope of this protocol and only supplemental to what is described by this machine-readable tracking status representation. </p> + <pre class="abnf"> +<dfn>policy</dfn> = %x22 "policy" %x22 +<dfn>policy-v</dfn> = string ; URI-reference + </pre> <p> An OPTIONAL member named <code><a>control</a></code> MAY be provided with a string value containing a URI-reference to a @@ -957,12 +964,36 @@ how one might implement an out-of-band consent mechanism is beyond the scope of this protocol. </p> + <pre class="abnf"> +<dfn>control</dfn> = %x22 "control" %x22 +<dfn>control-v</dfn> = string ; URI-reference + </pre> <p> Additional <code><a>extension</a></code> members MAY be provided in the <a>status-object</a> to support future enhancements to this protocol. A user agent SHOULD ignore extension members that it does not recognize. </p> + <pre class="abnf"> +<dfn>extension</dfn> = object + +<dfn>array-of-strings</dfn> = begin-array + [ string *( vs string ) ] + end-array + +<dfn>ns</dfn> = <name-separator (:), as defined in [[!RFC4627]]> +<dfn>vs</dfn> = <value-separator (,), as defined in [[!RFC4627]]> + +<dfn>begin-array</dfn> = <begin-array ([), as defined in [[!RFC4627]]> +<dfn>end-array</dfn> = <end-array (]), as defined in [[!RFC4627]]> +<dfn>begin-object</dfn> = <begin-object ({), as defined in [[!RFC4627]]> +<dfn>end-object</dfn> = <end-object (}), as defined in [[!RFC4627]]> +<dfn>object</dfn> = <object, as defined in [[!RFC4627]]> +<dfn>string</dfn> = <string, as defined in [[!RFC4627]]> +<dfn>true</dfn> = <true, as defined in [[!RFC4627]]> +<dfn>false</dfn> = <false, as defined in [[!RFC4627]]> +<dfn>null</dfn> = <null, as defined in [[!RFC4627]]> + </pre> <p> Note that the tracking status resource space applies equally to both first-party and third-party services. An example of a @@ -985,6 +1016,32 @@ </p> </section> + <section id='status-checks-not-tracked'> + <h4>Status Checks are Not Tracked</h4> + <p> + When sending a request for the tracking status, a user agent + SHOULD include any cookie data [[COOKIES]] (set prior to the + request) that would be sent in a normal request to that origin + server, since that data might be needed by the server to determine + the current tracking status. For example, the cookie data might + indicate a prior out-of-band decision by the user to opt-out or + consent to tracking by that origin server. + </p> + <p> + All requests on the tracking status resource space, including + the site-wide tracking status resource, MUST NOT be tracked, + irrespective of the presence, value, or absence of a DNT header + field, cookies, or any other information in the request. + In addition, all responses to those requests, including the + responses to redirected tracking status requests, MUST NOT + have Set-Cookie or Set-Cookie2 header fields and + MUST NOT have content that initiates tracking beyond what was + already present in the request. + A user agent SHOULD ignore, or treat as an error, any Set-Cookie + or Set-Cookie2 header field received in such a response. + </p> + </section> + <section id='status-caching'> <h3>Caching</h3> <p> @@ -1035,62 +1092,6 @@ <a href="#interactive-status-change" class="sectionRef"></a>. </p> </section> - - <section id='status-abnf'> - <h3>Status-object ABNF</h3> - <p> - The representation of a site's machine-readable tracking status - MUST conform to the following ABNF for <a>status-object</a>, - except that the members within each member-list MAY be provided - in any order. - </p> - <pre class="abnf"> -<dfn>status-object</dfn> = begin-object member-list end-object -<dfn>member-list</dfn> = tracking ns tracking-v - [ vs same-party ns same-party-v ] - [ vs partners ns partners-v ] - [ vs audit ns audit-v ] - [ vs policy ns policy-v ] - [ vs control ns control-v ] - *( vs extension ) - -<dfn>tracking</dfn> = %x22 "tracking" %x22 - -<dfn>same-party</dfn> = %x22 "same-party" %x22 -<dfn>same-party-v</dfn> = array-of-strings - -<dfn>partners</dfn> = %x22 "partners" %x22 -<dfn>partners-v</dfn> = array-of-strings - -<dfn>audit</dfn> = %x22 "audit" %x22 -<dfn>audit-v</dfn> = array-of-strings - -<dfn>policy</dfn> = %x22 "policy" %x22 -<dfn>policy-v</dfn> = string ; URI-reference - -<dfn>control</dfn> = %x22 "control" %x22 -<dfn>control-v</dfn> = string ; URI-reference - -<dfn>extension</dfn> = object - -<dfn>array-of-strings</dfn> = begin-array - [ string *( vs string ) ] - end-array - -<dfn>ns</dfn> = <name-separator (:), as defined in [[!RFC4627]]> -<dfn>vs</dfn> = <value-separator (,), as defined in [[!RFC4627]]> - -<dfn>begin-array</dfn> = <begin-array ([), as defined in [[!RFC4627]]> -<dfn>end-array</dfn> = <end-array (]), as defined in [[!RFC4627]]> -<dfn>begin-object</dfn> = <begin-object ({), as defined in [[!RFC4627]]> -<dfn>end-object</dfn> = <end-object (}), as defined in [[!RFC4627]]> -<dfn>object</dfn> = <object, as defined in [[!RFC4627]]> -<dfn>string</dfn> = <string, as defined in [[!RFC4627]]> -<dfn>true</dfn> = <true, as defined in [[!RFC4627]]> -<dfn>false</dfn> = <false, as defined in [[!RFC4627]]> -<dfn>null</dfn> = <null, as defined in [[!RFC4627]]> - </pre> - </section> </section> <section id='response-error'>
Received on Tuesday, 7 August 2012 07:06:54 UTC