WWW/2011/tracking-protection/drafts tracking-dnt.html,1.115,1.116

Update of /w3ccvs/WWW/2011/tracking-protection/drafts
In directory hutz:/tmp/cvs-serv31744

Modified Files:
	tracking-dnt.html 
Log Message:
ACTION-198: first pass at updating the response proposals so that a resource
can use the Tk header field to indicate compliance and refer to a specific
tracking status resource. Eliminate the path and partners members.
Combine the edit and options members into control.


Index: tracking-dnt.html
===================================================================
RCS file: /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html,v
retrieving revision 1.115
retrieving revision 1.116
diff -u -d -r1.115 -r1.116
--- tracking-dnt.html	21 May 2012 09:34:13 -0000	1.115
+++ tracking-dnt.html	21 May 2012 10:11:45 -0000	1.116
@@ -529,33 +529,37 @@
             leads to such a representation.
             A user agent MAY consider failure to provide access to such a
             representation equivalent to the origin server not implementing
-            this protocol.  The representation might be cached, as described
+            this protocol.  The representation MAY be cached, as described
             in <a href="#status-caching" class="sectionRef"></a>.
           </p>
           <p>
-            If an origin server contains multiple services that are controlled
-            by distinct parties or that might have differing behavior or
-            policies regarding tracking, then it MAY also provide a space of
-            well-known resources for obtaining information about the potential
-            tracking behavior of each specific service.  This parallel tree of
-            resources is called the <dfn>tracking status resource space</dfn>.
+            If an origin server has multiple, resource-specific tracking
+            policies, such that the tracking status might differ depending on
+            some aspect of the request (e.g., method, target URI, header
+            fields, data, etc.), the origin server MAY provide an additional
+            subtree of well-known resources corresponding to each of those
+            distinct tracking statuses.  The Tk response header field
+            (<a href="#response-header-field" class="sectionRef"></a>) can
+            include a <a>status-id</a> to indicate which specific tracking
+            status resource applies to the current request.
+            This subtree of resources is called the <dfn>tracking status
+            resource space</dfn>.
           </p>
           <p>
             The <dfn>tracking status resource space</dfn> is defined by the
             following URI Template [[URI-TEMPLATE]]:
           </p>
-          <pre>/.well-known/dnt{+pathinfo}</pre>
+          <pre>/.well-known/dnt{/status-id}</pre>
           <p>
-            where the value of <code>pathinfo</code> is equal to the
-            path component [[RFC3986]] of a given reference to that
-            origin server, excluding those references already within the above
-            resource space.  For example, a reference to
+            where the value of <code>status-id</code> is a string of URI-safe
+            characters provided by a Tk field-value in response to a prior
+            request.  For example, a prior response containing
           </p>
-          <pre>http://example.com/over/here?q=hello#top</pre>
+          <pre>Tk: 1;fRx42</pre>
           <p>
-            MAY have a corresponding tracking status resource identified by
+            refers to the specific tracking status resource
           </p>
-          <pre>http://example.com/.well-known/dnt/over/here</pre>
+          <pre>/.well-known/dnt/fRx42</pre>
           <p>
             Resources within the tracking status resource space are
             represented using the same format as a site-wide tracking status
@@ -597,7 +601,6 @@
           </p>
 <pre class="example">
 {
-  "path": "/",
   "tracking": true,
   "received": "1",
   "response": "t1",
@@ -606,12 +609,8 @@
     "example_vids.net",
     "example_stats.com"
   ],
-  "partners": [
-    "api.example-third-party.com"
-  ],
   "policy": "/tracking.html",
-  "edit": "http://example-third-party.com/your/data",
-  "options": "http://example-third-party.com/your/consent"
+  "control": "http://example-third-party.com/your/data"
 }
 </pre>
           <p>
@@ -620,26 +619,6 @@
             status applicable to this user agent's request.
           </p>
           <p>
-            If the <a>status-object</a> has an OPTIONAL <code><a>path</a></code>
-            member, then this object describes the tracking status for the
-            entire space of resources that share the same path prefix as
-            the value of <code><a>path</a></code>.
-            The user agent MUST interpret the <code><a>path</a></code> value
-            relative to the originally referenced resource, not the resource
-            where it obtained the tracking status representation.
-          </p>
-          <p>
-            For the site-wide tracking status resource, the presence of a
-            <code><a>path</a></code> member with a value of "/" indicates
-            that this <a>status-object</a> applies for the entire origin
-            server of the originally referenced resource.
-            If the originally referenced resource's path component does not
-            share the same prefix as the value of <code><a>path</a></code>, or
-            if the <code><a>path</a></code> member is absent, then the
-            tracking status for the referenced resource MAY be obtained via a
-            request on the corresponding tracking status resource space.
-          </p>
-          <p>
             A <a>status-object</a> MUST have a member named
             <code><a>tracking</a></code> with a boolean value.
             A value of <code><a>false</a></code> indicates that the
@@ -658,13 +637,6 @@
 {"tracking": false}
 </pre>
           <p>
-            The following <a>status-object</a> would indicate that the entire
-            site does not perform tracking.
-          </p>
-<pre class="example">
-{"path": "/", "tracking": false}
-</pre>
-          <p>
             If <code><a>tracking</a></code> is <code><a>true</a></code>,
             the <a>status-object</a> MUST include two additional members, named
             <code><a>received</a></code> and <code><a>response</a></code>,
@@ -683,7 +655,9 @@
             The <code></a>response</a></code> member MUST have a string value
             that indicates the status of tracking applicable specifically to
             this user in light of the received <a>DNT-field-value</a>.
-            The string value begins with "t" (tracking) or "n" (not tracking)
+            The string value begins with <code>t</code>  (tracking),
+            <code>n</code> (not tracking), or <code>s</code> (see the more
+            specific tracking status resource),
             and MAY be followed by alphanumeric characters that indicate
             qualifiers for that status.
             The defined qualifier characters and their meanings are described
@@ -697,13 +671,6 @@
             those references share the same data controller.
           </p>
           <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 track the user
-            as a result of using this site and which do not have the same
-            data controller as this site.
-          </p>
-          <p>
             An OPTIONAL member named <code><a>policy</a></code> MAY be
             provided with a string value containing a URI-reference to a
             human-readable document that describes the tracking policy for
@@ -712,22 +679,17 @@
             by this machine-readable tracking status representation.
           </p>
           <p>
-            An OPTIONAL member named <code><a>edit</a></code> MAY be
-            provided with a string value containing a URI-reference to a
-            resource intended to allow a tracked user agent to review or
-            delete data collected by this site, if any such data
-            remains associated with this user agent.  The design of such
-            a resource and the extent to which it can provide access to
-            that data is beyond the scope of this protocol.
-          </p>
-          <p>
-            An OPTIONAL member named <code><a>options</a></code> MAY be
+            An OPTIONAL member named <code><a>control</a></code> MAY be
             provided with a string value containing a URI-reference to a
-            resource intended to allow a user agent to <q>opt-in</q>,
-            <q>opt-out</q>, or otherwise modify their consent status
-            regarding data collection by this site.  The design of such
-            a resource and how it might implement an out-of-band consent
-            mechanism is beyond the scope of this protocol.
+            resource for giving the user control over personal data collected
+            by this site.  Such control might include the ability to review
+            past data collected, delete some or all of the data, provide
+            additional data (if desired), or <q>opt-in</q>, <q>opt-out</q>,
+            or otherwise modify an out-of-band consent status regarding
+            data collection by this site. The design of such a resource,
+            the extent to which it can provide access to that data, and
+            how one might implement an out-of-band consent mechanism is
+            beyond the scope of this protocol.
           </p>
           <p>
             Additional <code><a>extension</a></code> members MAY be provided
@@ -745,8 +707,7 @@
   "received": "1",
   "response": "n",
   "policy": "/privacy.html",
-  "edit": "/your/data",
-  "options": "/your/consent"
+  "control": "/your/data",
 }
 </pre>
           <p class='issue'><a href="http://www.w3.org/2011/tracking-protection/track/issues/47">ISSUE-47</a>: Should the response from the server indicate a policy that describes the DNT practices of the server?<br />
@@ -755,8 +716,8 @@
             link to a human-readable policy.
           </p>
           <p class='issue'><a href="http://www.w3.org/2011/tracking-protection/track/issues/61">ISSUE-61</a>: A site could publish a list of the other domains that are associated with them<br />
-            <b>[PENDING REVIEW]</b> The same-party and partners members provide
-            a means to list first-party and third-party domains, respectively.
+            <b>[PENDING REVIEW]</b> The same-party member provides
+            a means to list the set of same first-party domains.
           </p>
           <p class='issue'><a href="http://www.w3.org/2011/tracking-protection/track/issues/124">ISSUE-124</a>: Alternative DNT implementations that replace HTTP headers with something else<br />
             <b>[PENDING REVIEW]</b> The tracking status resource minimizes
@@ -773,8 +734,9 @@
           <p>
             When present, the tracking status response member's value
             consists of a string of characters that starts with the tracking
-            status, signified by <code>t</code> (tracking) or <code>n</code>
-            (not tracking), and MAY be followed by a set of qualifier
+            status, signified by <code>t</code> (tracking), <code>n</code>
+            (not tracking), or <code>s</code>  (see the more specific tracking
+            status resource), and MAY be followed by a set of qualifier
             characters indicating reasons or limitations applicable to
             that status. Multiple qualifiers can be provided.
           </p>
@@ -857,7 +819,7 @@
             not defined by this specification, and that prior consent
             overrides the tracking preference expressed by this protocol.
             When prior consent is indicated, the tracking status object
-            SHOULD include an <code><a>options</a></code> member that
+            SHOULD include a <code><a>control</a></code> member that
             references a resource for modifying this consent. 
           </p>
           <p>
@@ -917,18 +879,6 @@
             consider the site to be non-conformant with this protocol.
           </p>
           <p>
-            If the <a>status-object</a> does not have a member named
-            <code><a>path</a></code> or if the value of
-            <code><a>path</a></code> is not "/" and not a prefix of the
-            path component for the URI being checked, then find the
-            service-specific tracking status resource by taking the template
-            <q><code>/.well-known/dnt{+pathinfo}</code></q> and replacing
-            <q><code>{+pathinfo}</code></q> with the path component of the
-            URI being checked.  Perform a retrieval request on the
-            service-specific tracking status resource and process the result
-            as described above to obtain the specific tracking status.
-          </p>
-          <p>
             The <a>status-object</a> is supposed to have a member named
             <code><a>tracking</a></code> with a boolean value.  If the value
             is <q>false</q>, then no tracking is performed for the URI being
@@ -948,19 +898,23 @@
           <p>
             If the first character of the <code><a>response</a></code> value
             is "n", then the origin server claims that it will not track the
-            user agent for requests on the URI being checked, and for any URIs
-            with a path prefix matching the <code><a>path</a></code> member's
-            value, for at least the next 24 hours or until the Cache-Control
-            information indicates that this response expires, as described
-            below.
+            user agent for requests on the URI being checked for at least the
+            next 24 hours or until the Cache-Control information indicates
+            that this response expires, as described below.
           </p>
           <p>
             If the first character of the <code><a>response</a></code> value
             is "t", then the origin server claims that it might track the
-            user agent for requests on the URI being checked, and for any URIs
-            with a path prefix matching the <code><a>path</a></code> member's
-            value, for at least the next 24 hours or until the Cache-Control
-            information indicates that this response expires.
+            user agent for requests on the URI being checked for at least the
+            next 24 hours or until the Cache-Control information indicates
+            that this response expires.
+          </p>
+          <p>
+            If the first character of the <code><a>response</a></code> value
+            is "s", then the origin server has multiple tracking status
+            representations and the specific one applicable to each request
+            is indicated by a status-id within the Tk field-value of the
+            corresponding response.
           </p>
           <p>
             The remaining characters of the <code><a>response</a></code> value
@@ -1039,20 +993,14 @@
           </p>
           <pre class="abnf">
 <dfn>status-object</dfn> = begin-object member-list end-object
-<dfn>member-list</dfn>   = [ path ns path-v vs ]
-                tracking        ns tracking-v
+<dfn>member-list</dfn>   = tracking        ns tracking-v
                 [ vs received   ns received-v   ]
                 [ vs response   ns response-v   ]
                 [ vs same-party ns same-party-v ]
-                [ vs partners   ns partners-v   ]
                 [ vs policy     ns policy-v     ]
-                [ vs edit       ns edit-v       ]
-                [ vs options    ns options-v    ]
+                [ vs control    ns control-v    ]
                 *( vs extension )
 
-<dfn>path</dfn>          = %x22 "path" %x22
-<dfn>path-v</dfn>        = string       ; URI absolute-path
-
 <dfn>tracking</dfn>      = %x22 "tracking" %x22
 <dfn>tracking-v</dfn>    = true / false
 
@@ -1062,7 +1010,7 @@
 <dfn>response</dfn>      = %x22 "response" %x22
 <dfn>response-v</dfn>    = %x22 <a>r-codes</a> %x22
 
-<dfn>r-codes</dfn>       = ("t" / "n") *qualifier
+<dfn>r-codes</dfn>       = (%x74 / %x6E / %x73) *qualifier
 
 <dfn>qualifier</dfn>     = "1"   ; "1" — first-party
               / "3"   ; "3" — third-party
@@ -1075,23 +1023,17 @@
               / ext-qualifier
 
 <dfn>ext-qualifier</dfn> = %x2D-2E / "0" / "2" / %x34-39 / %x5F
-              / %x62 / %x64-65 / %x67-6B / %x6D-%x6F
-              / %x71 / %x73-7A
+              / %x62 / %x64-65 / %x67-6B / %x6D / %x6F
+              / %x71 / %x75-7A
 
 <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>policy</dfn>        = %x22 "policy" %x22
 <dfn>policy-v</dfn>      = string       ; URI-reference
 
-<dfn>edit</dfn>          = %x22 "edit" %x22
-<dfn>edit-v</dfn>        = string       ; URI-reference
-
-<dfn>options</dfn>       = %x22 "options" %x22
-<dfn>options-v</dfn>     = string       ; URI-reference
+<dfn>control</dfn>       = %x22 "control" %x22
+<dfn>control-v</dfn>     = string       ; URI-reference
 
 <dfn>extension</dfn>     = object
 
@@ -1124,15 +1066,20 @@
           <p>
             As a supplement to the tracking status resource, the <dfn>Tk</dfn>
             response header field is defined as an OPTIONAL means for
-            indicating basic tracking behavior and as a REQUIRED means for
+            indicating DNT conformance and as a REQUIRED means for
             indicating that a state-changing request has resulted in an
             interactive change to the tracking status for this user agent.
           </p>
           <pre class="abnf">
 <dfn>Tk-field-name</dfn>   =  "Tk"     ; case-insensitive
-<dfn>Tk-field-value</dfn>  =  tracking-false / tracking-true / update-needed
-<dfn>tracking-false</dfn>  =  "0"
-<dfn>tracking-true</dfn>   =  "1"
+<dfn>Tk-field-value</dfn>  =  tracking-design [ ";" status-id ]
+<dfn>tracking-design</dfn> =  tracking-never
+                           /  tracking-first
+                           /  tracking-third
+                           /  update-needed
+<dfn>tracking-never</dfn>  =  "0"
+<dfn>tracking-first</dfn>  =  "1"
+<dfn>tracking-third</dfn>  =  "3"
 <dfn>update-needed</dfn>   =  %x75     ; lowercase "u"
           </pre>
           <p class='issue'><a href="http://www.w3.org/2011/tracking-protection/track/issues/107">ISSUE-107</a>: Exact format of the response header?<br />
@@ -1141,12 +1088,23 @@
         </section>
         
         <section id='Tk-header-use'>
-          <h4>Indicating Tracking</h4>
+          <h4>Indicating Tracking Design</h4>
           
           <p>
+            The Tk field-value begins with a single character
+            <a>tracking-design</a> that indicates how the target resource
+            conforms to [[!TRACKING-COMPLIANCE]]. We refer to this as the
+            tracking design because it reflects only how the resource is
+            designed to work, rather than the current status of tracking
+            for this requesting user agent or received DNT field-value.
+            Separating the design and status allows conformance to this
+            protocol to be indicated without having a negative impact on
+            caching of responses.
+          </p>
+          <p>
             An origin server MAY send a <a>Tk</a> header field in a response
-            with a field-value of "0" to indicate that the resource does not
-            perform tracking as it is defined by [[!TRACKING-COMPLIANCE]].
+            with a tracking-design of "0" to indicate that the resource never
+            performs tracking as it is defined by [[!TRACKING-COMPLIANCE]].
             This has the same meaning as <code>{"tracking": "false"}</code>
             in the tracking status resource.
           </p>
@@ -1155,18 +1113,27 @@
           </pre>
           <p>
             An origin server MAY send a <a>Tk</a> header field in a response
-            with a field-value of "1" to indicate that the resource does
-            perform tracking, though not necessarily for this request, and
-            claims to conform to applicable tracking compliance requirements.
-            This has the same meaning as <code>{"tracking": "true"}</code>
-            in the tracking status resource.
+            with a tracking-design of "1" to indicate that the resource does
+            perform tracking (though not necessarily for every request),
+            conforms to [[!TRACKING-COMPLIANCE]], and considers itself to be
+            the first-party for this request.
           </p>
           <pre class="example">
 Tk: 1
           </pre>
+          <p>
+            An origin server MAY send a <a>Tk</a> header field in a response
+            with a tracking-design of "3" to indicate that the resource does
+            perform tracking (though not necessarily for every request),
+            conforms to [[!TRACKING-COMPLIANCE]], and considers itself to be
+            a third-party for this request.
+          </p>
+          <pre class="example">
+Tk: 3
+          </pre>
           <p class='issue'><a href="http://www.w3.org/2011/tracking-protection/track/issues/120">ISSUE-120</a>: Should the response header be mandatory (MUST) or recommended (SHOULD)</br>
-            <b>[PENDING REVIEW]</b> The resource is mandatory and the header
-            field is optional, except for the single MUST case below.
+            <b>[PENDING REVIEW]</b> The site-wide resource is mandatory; the
+            header field is optional, except for the single MUST case below.
           </p>
         </section>
         
@@ -1178,11 +1145,11 @@
             the scope of this specification, that have the effect of asking
             for and obtaining prior consent for tracking, or for modifying
             prior indications of consent.  For example, the tracking status
-            resource's status-object defines <code><a>edit</a></code> and
-            <code><a>options</a></code> members that might be used to refer
-            to such mechanisms. Although such mechanisms are not defined by
-            this specification, their presence might influence the tracking
-            status object's response value.
+            resource's status-object defines a <code><a>control</a></code>
+            member that can refer to such a mechanism. Although such
+            out-of-band mechanisms are not defined by this specification,
+            their presence might influence the tracking status object's
+            response value.
           </p>
           <p>
             When an origin server provides a mechanism via HTTP for
@@ -1191,13 +1158,38 @@
             when a state-changing request has resulted in a change to the
             tracking status for that server.  This indication of an
             interactive status change is accomplished by sending a
-            <a>Tk</a> header field in the response with a field-value of
+            <a>Tk</a> header field in the response with a tracking-design of
             lowercase "u" (<a>update-needed</a>).
           </p>
           <pre class="example">
 Tk: u
           </pre>
         </section>
+        
+        <section id='indicating-status-id'>
+          <h4>Indicating a Specific Tracking Status Resource</h4>
+          
+          <p>
+            If an origin server has multiple, resource-specific tracking
+            policies, such that the tracking status might differ depending on
+            some aspect of the request (e.g., method, target URI, header
+            fields, data, etc.), the origin server MAY provide an additional
+            subtree of well-known resources corresponding to each of those
+            distinct tracking statuses.  The OPTIONAL <a>status-id</a> portion
+            of the Tk field-value indicates which specific tracking
+            status resource applies to the current request.
+          </p>
+          <p>
+            For example, a response containing
+          </p>
+          <pre>Tk: 1;fRx42</pre>
+          <p>
+            indicates that the target resource conforms to this protocol as a
+            first-party and the current tracking status can be obtained by
+            performing a retrieval request on
+          </p>
+          <pre>/.well-known/dnt/fRx42</pre>
+        </section>
       </section>
 		
       <section id='response-error'>

Received on Monday, 21 May 2012 10:11:56 UTC