
<?rfc toc="yes"?>
<rfc ipr="full2026" docName="draft-marchiori-w3c-p3p-header-01">
	<front>
		<title abbrev="The HTTP header for P3P1.0">The HTTP header for the Platform for Privacy Preferences 1.0 (P3P1.0)</title>
		<author initials="M." surname="Marchiori" fullname="Massimo Marchiori">
			<organization>W3C/MIT/UNIVE</organization>
			<address>
				<postal>
					<street>200 Technology Square</street>
					<city>Cambridge</city>
					<region>MA</region>
					<code>02139</code>
					<country>US</country>
				</postal>
				<phone>+39 041 2908423</phone>
				<email>massimo@w3.org</email>
				<uri>http://www.w3.org/People/Massimo/</uri>
			</address>
		</author>
		<author initials="R." surname="Lotenberg" fullname="Ran Lotenberg">
			<organization>IDcide</organization>
			<address>
				<postal>
					<street>Blauer Drive</street>
					<city>Saratoga</city>
					<region>CA</region>
					<code>20454</code>
					<country>US</country>
				</postal>
				<phone>+1 408 8721541</phone>
				<email>ran@idcide.com</email>
				<uri>http://www.idcide.com</uri>
			</address>
		</author>
		<date month="February" year="2002"/>
		<area>World Wide Web</area>
		<keyword>I-D</keyword>
		<keyword>Internet-Draft</keyword>
		<keyword>P3P</keyword>
		<keyword>HTTP</keyword>
		<keyword>W3C</keyword>
		<keyword>Privacy</keyword>
		<abstract>
			<t>
  The <xref target="P3P">Platform for Privacy Preferences 1.0</xref> (P3P1.0) 
  specification describes how to associate a privacy policy with each URI request. 
  Such associations are contained in a so-called policy reference file.
  This draft describes a new HTTP response header which indicates the 
  location of such policy reference file. 
  This header is intended to be a part of the P3P1.0 framework and should 
  be treated in the full context of the <xref target="P3P">P3P1.0 specification</xref>. 
</t>
		</abstract>
	</front>
	<middle>
		<section title="Introduction">
			<section title="Background">
				<t>   
The <xref target="P3P">Platform for Privacy Preferences 1.0</xref> (P3P1.0, henceforth "P3P") is a specification 
currently under development at the <eref target="http://www.w3.org/">World Wide Web Consortium (W3C)</eref>.
</t>
				<t>
  P3P creates a framework for standardized, machine-readable 
  privacy policies, and consumer products that read these policies. 
  P3P's design allows Web sites to deliver automated privacy 
  statements, and makes it possible for users' browsers to review the 
  statements and to automate decision-making based on these practices 
  when appropriate. 
</t>
				<t>   
  For more information on the P3P specification please consult the 
  <xref target="P3P">P3P specification document</xref>. 
</t>
			</section>
			<section title="Motivation">
				<t>   
  Locating a P3P policy reference file is one of the first steps in 
  the operation of the P3P protocol. A P3P policy reference file associates
  to a URI or set of URIs the appropriate privacy policies. User agents (e.g., web browsers) 
  can use policy references to automatically locate the privacy policy which applies to 
  a page, so that they can process that policy for the benefit of 
  their user. 
</t>
				<t>   
  The P3P HTTP header comes into play by 
  providing the URI in which the policy reference file can be found. 
</t>
			</section>
			<section title="Conventions">
				<t>
The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", "MAY" in 
this document are to be interpreted as described in <xref target="RFC2119">RFC-2119</xref>.
</t>
			</section>
		</section>
		<section title="The P3P HTTP header">
			<t>   
  Any document retrieved by HTTP may point to a policy reference file 
  through the use of the P3P HTTP response header, the "PolicyRef"
  header. 
</t>
			<t>   
  The PolicyRef header contains the URI of a policy reference file, 
  which will usually state the P3P policy covering the document that pointed 
  to the reference file, and possibly others as well. 
  The URI specified in the PolicyRef header MUST 
  NOT be used for any other purpose beyond identifying and referencing 
  P3P policies. 
</t>
			<t>   
  The P3P policy reference header SHOULD be 
  inserted whenever a P3P-enabled server responds to a relevant 
  request, including when it responds to HEAD and OPTIONS requests. 
</t>
			<t>
Since policy references may be processed by agents anywhere along the response 
chain, the P3P header is an end-to-end HTTP extension.
</t>
			<t>
The PolicyRef header can be safely ignored by those applications/agents that do 
not understand it.
</t>
		</section>
		<section title="Header Syntax">
			<t>
The P3P header gives one or more comma-separated directives. The syntax follows, 
specified using ABNF rules (as per <xref target="RFC2234">RFC2234</xref>): 
<figure>
					<artwork>
p3p-header       = `P3P: ` p3p-header-field *(`,` p3p-header-field)

p3p-header-field = policy-ref-field | compact-policy-field | extension-field

policy-ref-field = `policyref="` URI-reference `"`

extension-field  = token [`=` (token | quoted-string) ]
</artwork>
				</figure>
			</t>
			<t> 
Here, URI-reference is defined as per <xref target="URI">RFC 2396</xref>, token and quoted-string are 
defined by <xref target="RFC2616">HTTP1.1</xref>. 
</t>
			<t>
In keeping with the rules for other HTTP headers, the P3P portion of this header may be written 
in any case. 
</t>
			<t>
The policyref directive gives a URI which specifies the location of the policy reference 
file which will state the P3P policy covering the document that pointed to the reference file, 
and possibly others as well. 
</t>
			<t>
The compact-policy-field is used to specify "compact policies". 
They are described in the next section.
</t>
			<t>
User agents which find unrecognized directives (in the extension-fields) MUST ignore 
the unrecognized directives. This is to allow easier deployment of future versions of P3P. 
</t>
			<t>   
For example: 
<list style="numbers">
					<t>
						<figure>
							<preamble>Client makes a GET request.</preamble>
							<artwork>     
    GET /index.html HTTP/1.1 
    Host: catalog.example.com 
    Accept: */* 
    Accept-Language: de, en 
    User-Agent: WonderBrowser/5.2 (RT-11) 
</artwork>
						</figure>
					</t>
					<t>
						<figure>
							<preamble>
Server returns content and the PolicyRef header pointing to the 
policy of the page. 
</preamble>
							<artwork>     
    HTTP/1.1 200 OK 
    P3P: policyref="http://catalog.example.com/P3P/PolicyReferences.xml"
    Content-Type: text/html 
    Content-Length: 7413 
    Server: CC-Galaxy/1.3.18 
</artwork>
						</figure>
					</t>
				</list>
			</t>
		</section>
		<section title="Compact Policies">
			<t>
Compact policies are essentially summaries of P3P policies. They can 
be used by user agents to quickly get approximate 
information about P3P policies, therefore improving performance. 
</t>
			<t>
For an in-depth explanation of compact policies, we refer to the 
<xref target="P3P">P3P1.0</xref> specification. Here, we limit 
to stating the syntax:
<figure>
					<artwork>
compact-policy-field  = `CP="` compact-policy `"`

compact-policy        = compact-token *(" " compact-token) 

compact-token         = compact-access           |
                        compact-disputes         |
                        compact-remedies         |
                        compact-non-identifiable |
                        compact-purpose          |
                        compact-recipient        |
                        compact-retention        |
                        compact-categories       |
                        compact-test 

compact-access        = "NOI" | "ALL" | "CAO" | "IDC" | "OTI" | "NON"

compact-disputes      = "DSP" 

compact-remedies      = "COR" | "MON" | "LAW"

compact-non-identifiable = "NID" 

compact-purpose       = "CUR"        | "ADM" [creq] | "DEV" [creq] | "TAI" [creq] | 
                        "PSA" [creq] | "PSD" [creq] | "IVA" [creq] | "IVD" [creq] | 
                        "CON" [creq] | "HIS" [creq] | "TEL" [creq] | "OTP" [creq]

creq                  = "a" | "i" | "o"

compact-recipient     = "OUR" | "DEL" [creq] | "SAM" [creq] | "UNR" [creq] | 
                        "PUB" [creq] | "OTR" [creq]

compact-retention     = "NOR" | "STP" | "LEG" | "BUS" | "IND"

compact-category      = "PHY" | "ONL" | "UNI" | "PUR" | "FIN" | "COM" | 
                        "NAV" | "INT" | "DEM" | "CNT" | "STA" | "POL" | 
                        "HEA" | "PRE" | "LOC" | "GOV" | "OTC"

compact-test          = "TST"
</artwork>
				</figure>
			</t>
		</section>
		<section title="Security Considerations">
			<t>
There are no additional security requirements transporting the P3P header beyond the 
requirements of the document it is associated with.
</t>
		</section>
		<section title="Notes">
			<t>
This draft is also present on the W3C site at the address 
<eref target="http://www.w3.org/2002/02/draft-marchiori-w3c-p3p-header-01.txt">http://www.w3.org/2002/02/draft-marchiori-w3c-p3p-header-01.txt</eref>. 
Enriched HTML and XML versions can be found at the addresses 
<eref target="http://www.w3.org/2002/02/draft-marchiori-w3c-p3p-header-01.html">http://www.w3.org/2002/02/draft-marchiori-w3c-p3p-header-01.html</eref> and
<eref target="http://www.w3.org/2002/02/draft-marchiori-w3c-p3p-header-01.xml">http://www.w3.org/2002/02/draft-marchiori-w3c-p3p-header-01.xml</eref> respectively. The XML version 
is compliant to <xref target="RFC2629">RFC-2629</xref>.
</t>
		</section>
		<section title="Acknowledgments">
			<t>  
This draft was produced by the 
<eref target="http://www.w3.org/P3P/Group/Specification">P3P Specification Working Group</eref>; 
please see 
<eref target="http://www.w3.org/TR/P3P/#Appendix_Working">authors and contributors</eref> 
of the <xref target="P3P">Platform for Privacy Preferences 1.0 Specification</xref>. 
</t>
			<t>Thanks to Marshall Rose for his conversion tools from the 
<xref target="RFC2629">RFC-2629</xref> XML format to HTML and RFC.</t>
		</section>
	</middle>
	<back>
		<references>
			<reference anchor="URI">
				<front>
					<title>Uniform Resource Location (URI): Generic Syntax and Semantics</title>
					<author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
						<organization>W3C/MIT</organization>
						<address>
							<postal>
								<street>MIT Laboratory for Computer Science</street>
								<street>200 Technology Square</street>
								<city>Cambridge</city>
								<region>MA</region>
								<code>02139</code>
								<country>US</country>
							</postal>
							<phone>+1 617 253 5702</phone>
							<facsimile>+1 617 258 8682</facsimile>
							<email>timbl@w3.org</email>
						</address>
					</author>
					<author initials="R." surname="Fielding" fullname="Roy Fielding">
						<organization>UC Irvine</organization>
					</author>
					<author initials="L." surname="Masinter" fullname="Larry Masinter">
						<organization>Xerox</organization>
					</author>
					<date month="August" year="1998"/>
				</front>
				<seriesInfo name="RFC" value="2396"/>
			</reference>
			<reference anchor="RFC2026">
				<front>
					<title>The Internet Standards Process -- Revision 3</title>
					<author initials="S.O." surname="Bradner" fullname="Scott O. Bradner">
						<organization>Harvard University</organization>
						<address>
							<postal>
								<street>Holyoke Center, Room 813</street>
								<street>1350 Massachusettes Avenue</street>
								<city>Cambridge</city>
								<region>MA</region>
								<code>02138</code>
								<country>US</country>
							</postal>
							<phone>+1 617 495 3864</phone>
							<email>sob@harvard.edu</email>
						</address>
					</author>
					<date month="October" year="1996"/>
				</front>
				<seriesInfo name="RFC" value="2026"/>
				<seriesInfo name="BCP" value="9"/>
			</reference>
			<reference anchor="RFC2119">
				<front>
					<title>Key words for use in RFCs to Indicate Requirement Levels</title>
					<author initials="S.O." surname="Bradner" fullname="Scott O. Bradner">
						<organization>Harvard University</organization>
						<address>
							<postal>
								<street>Holyoke Center, Room 813</street>
								<street>1350 Massachusettes Avenue</street>
								<city>Cambridge</city>
								<region>MA</region>
								<code>02138</code>
								<country>US</country>
							</postal>
							<phone>+1 617 495 3864</phone>
							<email>sob@harvard.edu</email>
						</address>
					</author>
					<date month="March" year="1997"/>
				</front>
				<seriesInfo name="RFC" value="2119"/>
				<seriesInfo name="BCP" value="14"/>
			</reference>
			<reference anchor="P3P" target="http://www.w3.org/TR/P3P/">
				<front>
					<title>The Platform for Privacy Preferences 1.0 (P3P1.0) Specification</title>
					<author initials="L." surname="Cranor" fullname="Lorrie Cranor">
						<organization>AT&amp;T</organization>
						<address>
							<email>lorrie@research.att.com</email>
						</address>
					</author>
					<author initials="M." surname="Langheinrich" fullname="Mark Langheinrich">
						<organization>ETH Zurich</organization>
						<address>
							<email>langhein@inf.ethz.ch</email>
						</address>
					</author>
					<author initials="M." surname="Marchiori" fullname="Massimo Marchiori">
						<organization>W3C/MIT/UNIVE</organization>
						<address>
							<postal>
								<street>200 Technology Square</street>
								<city>Cambridge</city>
								<region>MA</region>
								<code>02139</code>
								<country>US</country>
							</postal>
							<phone>+39 041 2908423</phone>
							<email>massimo@w3.org</email>
							<uri>http://www.w3.org/People/Massimo/</uri>
						</address>
					</author>
					<author initials="M." surname="Presler-Marshall" fullname="Martin Presler-Marshall">
						<organization>IBM</organization>
						<address>
							<email>mpresler@us.ibm.com</email>
						</address>
					</author>
					<author initials="J." surname="Reagle" fullname="Joseph Reagle">
						<organization>W3C/MIT</organization>
						<address>
							<email>reagle@w3.org</email>
						</address>
					</author>
					<date month="December" year="2000"/>
				</front>
				<seriesInfo name="W3C" value="P3P1.0"/>
			</reference>
			<reference anchor="RFC2234">
				<front>
					<title>Augmented BNF for Syntax Specifications: ABNF</title>
					<author initials="D." surname="Crocker" fullname="D. Crocker">
						<organization>Demon Internet Ltd.</organization>
					</author>
					<author initials="P." surname="Overel" fullname="P. Overel">
						<organization>Demon Internet Ltd.</organization>
					</author>
					<date month="November" year="1997"/>
				</front>
				<seriesInfo name="RFC" value="2234"/>
			</reference>
			<reference anchor="RFC2616">
				<front>
					<title>Hypertext Transfer Protocol -- HTTP/1.1</title>
					<author initials="R." surname="Fielding" fullname="Roy Fielding">
						<organization>UC Irvine</organization>
					</author>
					<author initials="J." surname="Gettys" fullname="Jim Gettys">
						<organization>Compaq/W3C</organization>
					</author>
					<author initials="J." surname="Mogul">
						<organization>Compaq</organization>
					</author>
					<author initials="H." surname="Frystyk" fullname="Henrik Frystyk">
						<organization>W3C/MIT</organization>
					</author>
					<author initials="L." surname="Masinter" fullname="Larry Masinter">
						<organization>Xerox</organization>
					</author>
					<author initials="P." surname="Leach">
						<organization>Microsoft</organization>
					</author>
					<author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
						<organization>W3C/MIT</organization>
						<address>
							<postal>
								<street>MIT Laboratory for Computer Science</street>
								<street>200 Technology Square</street>
								<city>Cambridge</city>
								<region>MA</region>
								<code>02139</code>
								<country>US</country>
							</postal>
							<phone>+1 617 253 5702</phone>
							<facsimile>+1 617 258 8682</facsimile>
							<email>timbl@w3.org</email>
						</address>
					</author>
					<date month="June" year="1999"/>
				</front>
				<seriesInfo name="RFC" value="2616"/>
			</reference>
			<reference anchor="RFC2629">
				<front>
					<title>Writing I-Ds and RFCs using XML</title>
					<author initials="M.T." surname="Rose" fullname="Marshall T. Rose">
						<organization>Invisible Worlds, Inc.</organization>
						<address>
							<postal>
								<street>660 York Street</street>
								<city>San Francisco</city>
								<region>CA</region>
								<code>94110</code>
								<country>US</country>
							</postal>
							<phone>+1 415 695 3975</phone>
							<email>mrose@not.invisible.net </email>
							<uri>http://invisible.net/</uri>
						</address>
					</author>
					<date month="June" year="1999"/>
				</front>
				<seriesInfo name="RFC" value="2629"/>
			</reference>
		</references>
	</back>
</rfc>
