<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!--<!DOCTYPE rfc SYSTEM "rfc2629.dtd">-->
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc-ext parse-xml-in-artwork="yes"?>

<rfc xmlns:x='http://purl.org/net/xml2rfc/ext' xmlns:ed="http://greenbytes.de/2002/rfcedit" ipr="full2026" docName="draft-ietf-webdav-redirectref-protocol-06" category="std">
  <x:link rel="up" href="http://greenbytes.de/tech/webdav/#draft-ietf-webdav-redirectref-protocol"/>
  <x:link rel="next" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-07.html"/>
  <x:link rel="prev" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-05.html"/>
  <x:link rel="last" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-latest.html"/>
  <x:link rel="Bookmark" title="IETF WEBDAV Working Group" href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/>
  <x:link rel="Alternate" title="(latest)" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-latest.html"/>
  <x:link rel="Alternate" title="draft 13" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-13.html"/>
  <x:link rel="Alternate" title="draft 12" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-12.html"/>
  <x:link rel="Alternate" title="draft 11" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-11.html"/>
  <x:link rel="Alternate" title="draft 10" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-10.html"/>
  <x:link rel="Alternate" title="draft 09" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-09.html"/>
  <x:link rel="Alternate" title="draft 08" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-08.html"/>
  <x:link rel="Alternate" title="draft 07" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-07.html"/>
  <x:link rel="Alternate" title="draft 06" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-06.html"/>
  <x:link rel="Alternate" title="draft 05" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-05.html"/>
  <x:link rel="Alternate" title="draft 04" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-04.html"/>
  <x:link rel="Alternate" title="draft 03" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-03.html"/>
  <x:link rel="Alternate" title="draft 02 (expired 1999 draft)" href="http://greenbytes.de/tech/webdav/draft-ietf-webdav-redirectref-protocol-02.html"/>
  <front>
    <title>WebDAV Redirect Reference Resources</title>
    <author initials="J." surname="Whitehead" fullname="Jim Whitehead">
      <organization abbrev="U.C. Santa Cruz">UC Santa Cruz, Dept. of Computer Science</organization>
      <address>
        <postal>
          <street>1156 High Street</street>
          <city>Santa Cruz</city>
          <region>CA</region>
          <code>95064</code>
          <country>US</country>
        </postal>
        <email>ejw@cse.ucsc.edu</email>
      </address>
    </author>
    <author initials="G." surname="Clemm" fullname="Geoff Clemm">
      <organization>IBM</organization>
      <address>
        <postal>
          <street>20 Maguire Road</street>
          <city>Lexington</city><region>MA</region><code>02421</code>
          <country>US</country>
        </postal>
        <email>geoffrey.clemm@us.ibm.com</email>
      </address>
    </author>
    <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke" role="editor">
      <organization abbrev="greenbytes">greenbytes GmbH</organization>
      <address>
        <postal>
          <street>Salzmannstrasse 152</street>
          <city>Muenster</city><region>NW</region><code>48159</code>
          <country>Germany</country>
        </postal>
        <phone>+49 251 2807760</phone>
        <facsimile>+49 251 2807761</facsimile>
       <email>julian.reschke@greenbytes.de</email>
        <uri>http://greenbytes.de/tech/webdav/</uri>
      </address>
    </author>

    <date month="October" year="2003" day="20"/>
    <workgroup>WEBDAV Working Group</workgroup>

    <abstract>

<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-85-301" type="change" status="open">
  <ed:item date="2000-01-03" entered-by="ejw@cse.ucsc.edu">
    Support creation of other than 302 redirects, especially 301.
  </ed:item>
  <ed:item date="2003-10-13" entered-by="julian.reschke@greenbytes.de">
    HTTP seems to distinguish the following use cases: (a) permanent
    redirect (301), (b) temporary redirect (302 or 307), (c) redirect to a GET
    location after POST (303) and (d) agent-driven negotiation (300).
    Among these, (a) and (b) seem to be well understood, so we should
    support both. (c) doesn't seem to be applicable. (d) may become interesting
    when user agents start supporting it, so the spec should be flexible
    enough to support a feature extension for that. For now I propose
    that the client is able to specify the redirection type as a resource type,
    such as "DAV:permanent-redirect-reference" and "DAV:temporary-redirect-reference".
    This spec would only define the behaviour for these two resource types
    and would allow future extensions using new resource types and suggested
    response codes.
  </ed:item>
</ed:issue>
<t>
  This specification defines redirect reference resources.  A 
  redirect reference resource is a resource whose default response is an 
  HTTP/1.1 302 (Found) status code, redirecting the client to a different 
  resource, the target resource.  A redirect reference makes it possible 
  to access the target resource indirectly, through any URI mapped to the 
  redirect reference resource.  There are no integrity guarantees 
  associated with redirect reference resources.
</t>
<t>
  Distribution of this document is unlimited. Please send comments to the 
  Distributed Authoring and Versioning (WebDAV) working group at <eref target="mailto:w3c-dist-auth@w3.org">w3c-dist-auth@w3.org</eref>, which may be joined by sending a message with subject 
  "subscribe" to <eref target="mailto:w3c-dist-auth-request@w3.org?subject=subscribe">w3c-dist-auth-request@w3.org</eref>.
</t>
<t>
  Discussions of the WEBDAV working group are archived at URL: 
  <eref target="http://lists.w3.org/Archives/Public/w3c-dist-auth/">http://lists.w3.org/Archives/Public/w3c-dist-auth/</eref>.               
</t> 
</abstract>
</front>

	<middle>


<section title="Introduction">
<t>
  This is one of a pair of specifications that extend the WebDAV 
  Distributed Authoring Protocol to enable clients to create new access 
  paths to existing resources.  This capability is useful for several 
  reasons:
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-38-not-hierarchical" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0289.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Not Hierarchical:
    The first sentence of the second paragraph of the introduction of the redirect spec asserts that the URIs of WebDAV compliant resources match to collections. The WebDAV standard makes no such requirement. I therefore move that this sentence be stricken.
  </ed:item>
  <ed:resolution>
    State the more general HTTP rationale first (alternative names for the same resource), then introduce the collection hierarchy rationale, which applies only if you are in a WebDAV-compliant space.
  </ed:resolution>
</ed:issue>
<t>
  URIs of WebDAV-compliant resources are hierarchical and correspond to a 
  hierarchy of collections in resource space.  The WebDAV Distributed 
  Authoring Protocol makes it possible to organize these resources into 
  hierarchies, placing them into groupings, known as collections, which 
  are more easily browsed and manipulated than a single flat collection.  
  However, hierarchies require categorization decisions that locate 
  resources at a single location in the hierarchy, a drawback when a 
  resource has multiple valid categories. For example, in a hierarchy of 
  vehicle descriptions containing collections for cars and boats, a 
  description of a combination car/boat vehicle could belong in either 
  collection. Ideally, the description should be accessible from both. 
  Allowing clients to create new URIs that access the existing resource 
  lets them put that resource into multiple collections.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-36-server" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0285.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Servers: Replace "server" with "unrelated system" throughout.
  </ed:item>
  <ed:resolution>
    Try replacing "server" with "host" in some contexts, rephrasing in passive voice in others.
    See also issue 40.
  </ed:resolution>
</ed:issue>
<t>
  Hierarchies also make resource sharing more difficult, since resources 
  that have utility across many collections are still forced into a single 
  collection. For example, the mathematics department at one university 
  might create a collection of information on fractals that contains 
  bindings to some local resources, but also provides access to some 
  resources at other universities.  For many reasons, it may be 
  undesirable to make physical copies of the shared resources on the local 
  server: to conserve disk space, to respect copyright constraints, or to 
  make any changes in the shared resources visible automatically. Being 
  able to create new access paths to existing resources in other 
  collections or even on other servers is useful for this sort of case.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-33-forwarding" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0284.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Forwarding: Replace "forward" with "redirect" throughout.
  </ed:item>
  <ed:resolution>
    Use "redirect" for the behavior redirect resources do exhibit. Use "forward" for the contrasting behavior (passing a method on to the target with no client action needed). Define these two terms. See also issue 40.
  </ed:resolution>
</ed:issue>
<t>
  The redirect reference resources defined here provide a mechanism for 
  creating alternative access paths to existing resources.  A redirect 
  reference resource is a resource in one collection whose purpose is to 
  forward requests to another resource (its target), possibly in a 
  different collection.  In this way, it allows clients to submit requests 
  to the target resource from another collection.  It redirects most 
  requests to the target resource using the HTTP 302 (Found) status code, 
  thereby providing a form of mediated access to the target resource.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-37-integrity" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0288.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Integrity: Intro, para 7 "Servers are not required to enforce the integrity of redirect references." Integrity is not defined. Replace with something clearer.
  </ed:item>
  <ed:resolution>
    Rewrite to say that the server MUST NOT update the target
    See also issue 6.
  </ed:resolution>
</ed:issue>
<t>
  A redirect reference is a resource with properties but no body of its own.  Properties of a redirect reference resource can 
  contain such information as who created the reference, when, and why.  
  Since redirect reference resources are implemented using HTTP 302 
  responses, it generally takes two round trips to submit a request to the 
  intended resource.  Servers are not required to enforce the integrity of 
  redirect references.  Redirect references work equally well for local 
  resources and for resources that reside on a different server from the 
  reference.
</t>
<t>
  The remainder of this document is structured as follows: <xref target="terminology"/>
  defines terms that will be used throughout the specification.  <xref target="overview"/>
  provides an overview of redirect reference resources.  <xref target="creating"/>
  discusses how to create a redirect reference resource.  <xref target="operations.on.redirect.reference.resources"/>
  defines the semantics of existing methods when applied to redirect 
  reference resources, and <xref target="operations.on.collections.that.contain.redirect.reference.resources"/> discusses their semantics when 
  applied to collections that contain redirect reference resources.   
  Sections <xref target="operations.on.targets.of.redirect.reference.resources" format="counter"/>
  through <xref target="redirect.references.to.collections" format="counter"/> discuss several other issues raised by the 
  existence of redirect reference resources.  Sections <xref target="headers" format="counter"/> through
  <xref target="extensions.to.response.element" format="counter"/> 
  define the new headers, properties, and XML elements required to support 
  redirect reference resources.  Section <xref target="capability.discovery" format="counter"/> discusses capability 
  discovery.  Sections <xref target="security.considerations" format="counter"/>
  through <xref target="iana.considerations" format="counter"/> present the security, 
  internationalization, and IANA concerns raised by this specification.  
  The remaining sections provide a variety of supporting information.
</t>
</section>
    


<section title="Notational Conventions">
<t>
  Since this document describes a set of extensions to the WebDAV 
  Distributed Authoring Protocol <xref target="RFC2518"/>, itself an extension to the 
  HTTP/1.1 protocol, the augmented BNF used here to describe protocol 
  elements is exactly the same as described in Section 2.1 of <xref target="RFC2616"/>.  
  Since this augmented BNF uses the basic production rules provided in 
  Section 2.2 of <xref target="RFC2616"/>, these rules apply to this document as well.
</t>
<t>
  The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
  document are to be interpreted as described in <xref target="RFC2119"/>.
</t>
</section>



<section title="Terminology" anchor="terminology">
<t>
  The terminology used here follows and extends that in the WebDAV 
  Distributed Authoring Protocol specification <xref target="RFC2518"/>. Definitions of 
  the terms resource, Uniform Resource Identifier (URI), and Uniform 
  Resource Locator (URL) are provided in <xref target="RFC2396"/>.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="3-terminology-redirectref" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0290.html">
  <ed:item date="2003-07-27" entered-by="julian.reschke@greenbytes.de">
    Consider global rename of "redirect reference resource" to "redirect resource".
  </ed:item>
</ed:issue>
<t>Redirect Reference Resource
  <list><t>
    A resource created to redirect all requests made to it, using 302 (Found),
    to a defined target resource.
  </t></list>
</t>
<t>Non-Reference Resource
  <list><t>
   A resource that is not a reference to another resource.</t>
  </list></t>
<t>Target Resource
  <list><t>
   The resource to which requests are forwarded by a reference 
   resource. 
   A target resource can be anything that can be identified by an absolute URI
   (see <xref target="RFC2396"/>, "absoluteURI").
   </t>
  </list></t>
</section>

<section title="Overview of Redirect Reference Resources" anchor="overview">
<t>
  For all operations submitted to a redirect reference resource, the 
  default response is a 302 (Found), accompanied by the Redirect-Ref 
  header (defined in <xref target="header.redirect-ref"/> below) and the Location header set to 
  the URI of the target resource.  With this information, the client can 
  resubmit the request to the URI of the target resource.
</t>
<t>
  A redirect reference resource never automatically forwards requests to 
  its target resource.  
  Redirect resources
  bring the same benefits as links in HTML documents. They can be created and
  maintained without the involvement or even knowledge of their target
  resource. This reduces the cost of linking between resources."
</t>
<t>
  If the client is aware that it is operating on a redirect reference 
  resource, it can resolve the reference by retrieving the reference 
  resource's DAV:reftarget property (defined in <xref target="reftarget.property"/> below), whose 
  value contains the URI of the target resource.  It can then submit 
  requests to the target resource. 
</t>
<t>
  A redirect reference resource is a new type of resource. To distinguish 
  redirect reference resources from non-reference resources, a new value 
  of the DAV:resourcetype property (defined in <xref target="RFC2518"/>), DAV:redirectref, 
  is defined in <xref target="redirectref.xml.element"/> below.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-19-direct-ref" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0266.html">
  <ed:item date="2000-02-07" entered-by="reuterj@ira.uka.de">
    Section 4, para 5 and Section 6, para 3 discussions of the Apply-to-Redirect-Ref header make it sound as if we are specifying direct reference behavior.
  </ed:item>
  <ed:resolution>
    Change these passages so that the contrast is between applying the method to the redirect reference and responding with a 302.
  </ed:resolution>
</ed:issue>
<t>
  Since a redirect reference resource is a resource, methods can be applied to the reference 
  resource as well as to its target resource.  The Apply-To-Redirect-Ref 
  request header (defined in <xref target="header.apply-to-redirect-ref"/> below) is provided so that 
  referencing-aware clients can control whether an operation is applied to 
  the redirect reference resource or to its target resource.  The Apply-To-Redirect-Ref
  header can be used with most requests to redirect 
  reference resources.  This header is particularly useful with PROPFIND, 
  to retrieve the reference resource's own properties.
</t>
</section>

<section title="Creating a Redirect Reference Resource" anchor="creating">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-41-no-webdav" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0292.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Make redirect references independent of the rest of WebDAV. The creation method for redirect references shouldn't require an XML request body.
  </ed:item>
  <ed:resolution>
    We will make redirect references independent of the rest of WebDAV.
    MKREF will not have an XML request body.
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-58-update" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0308.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    There needs to be a way to update the target of a redirect reference.
  </ed:item>
  <ed:resolution>
    Agreed.
    See also issues 6, 43.
  </ed:resolution>
</ed:issue>
<t>
  The new MKRESOURCE method is used to create new redirect reference 
  resources.  In order to create a redirect reference resource using 
  MKRESOURCE, the values of two properties must be set in the body of the 
  MKRESOURCE request.  The value of DAV:resourcetype MUST be set to 
  DAV:redirectref, a new value of DAV:resourcetype defined in <xref target="redirectref.xml.element"/>.
  The value of DAV:reftarget MUST be set to the URI of the target 
  resource.
</t>
<t>
  Used in this way, the MKRESOURCE method creates a redirect reference 
  resource whose target is identified by the DAV:reftarget property.
</t>

<section title="MKRESOURCE" anchor="MKRESOURCE">
<t>
  The MKRESOURCE method requests the creation of a redirect reference resource and 
  initialization of its properties in one atomic operation.
</t>
<t>
Preconditions:
<list><t>
  A resource MUST NOT exist at the Request-URI.
</t></list>
Request Marshalling:
<list><t>
  The location of the new resource to be created is specified by the 
  Request-URI. 
</t>
<t>
  The request body of the MKRESOURCE method MUST consist of the 
  DAV:propertyupdate XML element defined in Section 12.13 of <xref target="RFC2518"/>,
  specifying a DAV:resourcetype of "DAV:redirectref".
</t></list>
Postconditions:
<list><t>
  If the response status code is 201, a new resource exists at the 
  Request-URI.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-24-properties" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0266.html">
  <ed:item date="2000-02-07" entered-by="reuterj@ira.uka.de">
    Section 5.1: Replace the sentence "The properties of the new resource are as specified by the DAV:propertyupdate request body, using PROPPATCH semantics" with the following:
    "The MKRESOURCE request MAY contain a DAV:propertyupdate request body to initialize resource properties. Herein, the semantics is the same as when sending a MKRESOURCE request without a request body, followed by a PROPPATCH with the DAV:propertyupdate request body."
  </ed:item>
  <ed:resolution>
    No longer relevant once we switch to MKREF with no request body.
  </ed:resolution>
</ed:issue>
<t>
  The properties of the new resource are as specified by the 
  DAV:propertyupdate request body, using PROPPATCH semantics.
</t>
<t>
  If the response status code is not 201, then a new resource is not 
  created at the Request-URI, and any existing resource at the Request-URI 
  is unaffected.
</t></list>
  Response Marshalling:
<list><t>
  Responses from a MKRESOURCE request MUST NOT be cached, as MKRESOURCE 
  has non-idempotent semantics.
</t>
<t>
  The following status codes can be expected in responses to MKRESOURCE:
</t>
<t>
  201 (Created): The new resource was successfully created.
</t>
<t>
  403 (Forbidden): The server does not allow the creation of the requested 
  resource type at the requested location, or the parent collection of the 
  Request-URI exists but cannot accept members.
</t>
<t>
  409 (Conflict): A resource cannot be created at the Request-URI because 
  the parent collection for the resource does not exist, or because there 
  is already a resource at that request-URL.
</t>
<t>
  423 (Locked): The Request-URI is locked, and the lock token was not 
  passed with the request.
</t>
<t>
  507 (Insufficient Storage): The server does not have sufficient space to 
  record the state of the resource.
</t></list></t>
</section>

<section title="Example: Creating a Redirect Reference Resource with MKRESOURCE">

<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="rfc2606-compliance" type="editor" status="editor">
  <ed:item date="2003-10-02" entered-by="julian.reschke@greenbytes.de">
    Ensure that examples use only sample domains as per RFC2606.
  </ed:item>
</ed:issue>
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
MKRESOURCE /~whitehead/dav/spec08.ref HTTP/1.1
Host: www.ics.uci.edu
Content-Type: text/xml; charset="utf-8"
Content-Length: xxx

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;D:propertyupdate xmlns:D="DAV:"&gt;
  &lt;D:set&gt;
    &lt;D:prop&gt;
      &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
      &lt;D:reftarget&gt;
        &lt;D:href&gt;/i-d/draft-webdav-protocol-08.txt&lt;/D:href&gt;
      &lt;/D:reftarget&gt;
    &lt;/D:prop&gt;
  &lt;/D:set&gt;
&lt;/D:propertyupdate&gt;
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 201 Created
</artwork>
</figure>
<t>
  This request resulted in the creation of a new redirect reference 
  resource at www.ics.uci.edu/~whitehead/dav/spec08.ref, which points to 
  the resource identified by the DAV:reftarget property. In this example, 
  the target resource is identified by the URI http://www.ics.uci.edu/i-d/draft-webdav-protocol-08.txt.
  The redirect reference resource's DAV:resourcetype property is set to DAV:redirectref.
</t>
</section>
</section>

<section title="Operations on Redirect Reference Resources" anchor="operations.on.redirect.reference.resources">

<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-48-s6" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0298.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Replace all of section 6 with just this:
    A redirect resource, upon receiving a request without an Apply-To-Redirect-Ref header, MUST respond with a 302 (Found) response. The 302 (Found) response MUST include a location header identifying the target and a Redirect-Ref header. 
    If a redirect resource receives a request with an Apply-To-Redirect-Ref header then the redirect reference resource MUST apply the method to itself rather than blindly returning a 302 (Found) response.
  </ed:item>
  <ed:resolution>
    Keep a summary along the lines of Yaron's proposal (don't use the word "blindly").
    Keep the bullets detailing the headers to be returned.
    Delete the rest, including the examples.
    See also issue 28, 29, 30, 31, 32.
  </ed:resolution>
</ed:issue>
<t>
  Although non-referencing-aware clients cannot create reference 
  resources, they should be able to submit requests through the reference 
  resources created by reference-aware WebDAV clients.  They should be 
  able to follow any references to their targets.  To make this possible, 
  a server that receives any request made via a redirect reference 
  resource MUST return a 302 (Found) status code, unless the request 
  includes an Apply-To-Redirect-Ref header<ed:replace
  ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:ins> specifying "T"</ed:ins></ed:replace>. The client and server MUST 
  follow <xref target="RFC2616"/> Section 10.3.3 "302 Found<ed:del>,</ed:del>"<ed:ins>,</ed:ins> but with these additional 
  rules: 
</t>
<t>
<list style="symbols">
<t>
  The Location response header MUST contain an absolute URI that 
  identifies the target of the reference resource.
</t>
<t>
  The response MUST include the Redirect-Ref header.  This header 
  allows reference-aware WebDAV clients to recognize the resource as a 
  reference resource and understand the reason for the redirection.
</t>
</list>
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-28-lang" type="edit" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0266.html">
  <ed:item date="2000-02-07" entered-by="reuterj@ira.uka.de">
    Section 6: Get rid of the sentence "A reference-aware WebDAV client can act on this response in one of two ways." A client can act on the response in any way it wants.
  </ed:item>
  <ed:resolution>
    Agreed.
    See also issue 48.
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-29-lang" type="edit" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0266.html">
  <ed:item date="2000-02-07" entered-by="reuterj@ira.uka.de">
    Section 6, para 4: Obvious, doesn't need to be stated. Maybe note in an example.  </ed:item>
  <ed:resolution>
    Agreed.
    See also issue 48.
  </ed:resolution>
</ed:issue>
<t>
  A reference-aware WebDAV client can act on this response in one of two 
  ways.  It can, like a non-referencing client, resubmit the request to 
  the URI in the Location header in order to operate on the target 
  resource.  Alternatively, it can resubmit the request to the URI of the 
  redirect reference resource with the <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>Apply-To-Redirect-Ref</ed:del>
  <ed:ins>"Apply-To-Redirect-Ref: T"</ed:ins></ed:replace> header in 
  order to operate on the reference resource itself. <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>If the Apply-To-Redirect-Ref
  header is present,</ed:del><ed:ins>In this case,</ed:ins></ed:replace> the request MUST be applied to the 
  reference resource itself, and a 302 response MUST NOT be returned.
</t>
<t>
  A reference-aware client may know before submitting its request that the 
  Request-URI identifies a redirect reference resource. In this case, if 
  the client wants to apply the method to the reference resource, it can 
  save the round trip caused by the 302 response by using an Apply-To-Redirect-Ref
  header in its initial request to the URI.
</t>
<t>
  As redirect references do not have bodies, GET and PUT requests with
  <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>Apply-To-Redirect-Ref</ed:del>
  <ed:ins>"Apply-To-Redirect-Ref: T"</ed:ins></ed:replace> MUST fail with status 403 (forbidden).
</t>

<ed:replace ed:resolves="lc-48-s6" ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-02"><ed:del>
<section title="Example: GET on a Redirect Reference Resource">
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
GET /bar.html HTTP/1.1
Host: www.foo.com 
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 302 Found
Location: http://www.svr.com/Internet/xxspec08.html
Redirect-Ref: 
</artwork>
</figure>
<t>
  Since /bar.html is a redirect reference resource and the Apply-To-Redirect-Ref
  header is not included in the request, the response is a 
  302 (Found).  The Redirect-Ref header informs a reference-aware client 
  that this is not an ordinary HTTP 1.1 redirect, but is a redirect 
  reference resource.  The URI of the target resource is provided in the 
  Location header so that the client can resubmit the request to the 
  target resource.
</t>
</section>

<section title="Example: PROPPATCH on a Redirect Reference Resource">
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
PROPPATCH /bar.html HTTP/1.1 
Host: www.foo.com 
Content-Type: text/xml; charset="utf-8" 
Content-Length: xxxx 

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;D:propertyupdate xmlns:D="DAV:"
xmlns:Z="http://www.w3.com/standards/z39.50/"&gt;
  &lt;D:set&gt;
    &lt;D:prop&gt;
      &lt;Z:authors&gt;
        &lt;Z:Author&gt;Jim Whitehead&lt;/Z:Author&gt;
        &lt;Z:Author&gt;Roy Fielding&lt;/Z:Author&gt;
      &lt;/Z:authors&gt;
    &lt;/D:prop&gt;
  &lt;/D:set&gt;
  &lt;D:remove&gt;
    &lt;D:prop&gt;
      &lt;Z:Copyright-Owner/&gt;
    &lt;/D:prop&gt;
  &lt;/D:remove&gt;
&lt;/D:propertyupdate&gt;
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 302 Found
Location: http://www.svr.com/Internet/xxspec08.html
Redirect-Ref: 
</artwork>
</figure>
<t>
  Since /bar.html is a redirect reference resource and the Apply-To-Redirect-Ref
  header is not included in the request, the response is a 
  302 (Found).  The Redirect-Ref header informs a reference-aware client 
  that this is not an ordinary HTTP 1.1 redirect, but is a redirect 
  reference resource.  The URI of the target resource is provided in the 
  Location header so that the client can resubmit the request to the 
  target resource.
</t>
</section>
</ed:del></ed:replace>

</section>

<section title="Operations on Collections That Contain Redirect Reference Resources" anchor="operations.on.collections.that.contain.redirect.reference.resources">

<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-44-pseudo" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0302.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Instead of adding an optional prop XML element to the response element in 207 responses, define a new location XML element and a new refresource XML element.
  </ed:item>
  <ed:resolution>
    Agree to define new XML elements that are not pseudo-properties.
    Disagreement about whether refresource is needed.
    See issue 61.
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-61-pseudo" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    Section 7: It doesn't make sense to ask future editors of RFC 2518 to define DAV:location with the semantics it has here.
    RFC 2518 should provide the information in the Location header somehow in multistatus responses, but not by using properties.
  </ed:item>
  <ed:resolution>
    Define an XML element for location that is not a pseudo-property.
    We'll keep the recommendation that RFC 2518 add this for 302 responses.
    See also issue 44.
  </ed:resolution>
</ed:issue>
<t>
  Consistent with the rules in <xref target="operations.on.redirect.reference.resources"/>, the response for each redirect 
  reference encountered while processing a collection MUST be a 302 
  (Found) unless a <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>Apply-To-Redirect-Ref</ed:del>
  <ed:ins>"Apply-To-Redirect-Ref: T"</ed:ins></ed:replace> header is included with the 
  request.  The overall response will therefore be a 207 (Multi-Status).  
  Since a Location header and Redirect-Ref header cannot be returned for 
  each redirect reference encountered, the same information is provided 
  using properties in the response elements for those resources.  The 
  DAV:location pseudo-property and the DAV:resourcetype property MUST be 
  included with the 302 status code.  This necessitates an extension to 
  the syntax of the DAV:response element that was defined in <xref target="RFC2518"/>.  
  The extension is defined in <xref target="extensions.to.response.element"/> below.
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-60-ex" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    Section 7, para 3: Make it clear that these are just examples of client behavior, and are not meant to limit the client's behavior to these options.
  </ed:item>
  <ed:resolution datetime="2003-10-13">
    Agreed to delete this paragraph.
    Continue discussion of what information should be returned with 302 in multistatus. Just location? Also redirectref?
    Update: ret gid of pseudo-property and special response format, define
    new response element instead. See ossue lc-61-pseudo.
  </ed:resolution>
</ed:issue>
<ed:replace datetime="2003-10-13" ed:entered-by="julian.reschke@greenbytes.de" ed:resolves="lc-60-ex"><ed:del>
<t>
  A referencing-aware client can tell from the DAV:resourcetype property 
  that the collection contains a redirect reference resource.  The 
  DAV:location pseudo-property contains the absolute URI of the target 
  resource.  A referencing-aware client can either use the URI value of 
  the DAV:location pseudo-property to resubmit its request to the target 
  resource, or it can submit the request to the redirect reference 
  resource with Apply-To-Redirect-Ref.  
</t>
</ed:del></ed:replace>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-62-oldclient" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    Section 7: It's too strong to claim that non-referencing clients can't process 302 responses occurring in Multi-Status responses. They just have an extra round trip for each 302.
  </ed:item>
  <ed:resolution>
    Remove last sentence of the paragraph that recommends changes to RFC 2518.
  </ed:resolution>
</ed:issue>
<t>
  It is recommended that future editors of <xref target="RFC2518"/> define the 
  DAV:location pseudo-property in <xref target="RFC2518"/>, so that non-referencing 
  clients will also be able to use the response to operate on the target 
  resource.  (This will also enable clients to operate on traditional 
  HTTP/1.1 302 responses in Multi-Status responses.) Until then, non-referencing
  clients will not be able to process 302 responses from 
  redirect reference resources encountered while processing a collection.
</t>
<t>
  The Apply-To-Redirect-Ref header (defined in <xref target="header.apply-to-redirect-ref"/>) MAY be used 
  with any request on a collection.  If present, it will be applied to all 
  redirect reference resources encountered while processing the 
  collection.
</t>

<section title="MOVE and DELETE on Collections That Contain Redirect References">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-63-move" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    Section 7.1: Is MOVE atomic from the perspective of a client?
    Agrees that there should be no 302s for member redirect references, but finds the rationale dubious.
  </ed:item>
  <ed:resolution>
    Remove 7.1.
    Reword 7.2 to avoid concerns with "poses special problems" and "due to atomicity".
  </ed:resolution>
</ed:issue>
<t>
  DELETE removes the binding that corresponds to the Request-URI.  MOVE 
  removes that binding and creates a new binding to the same resource.  In 
  cases where DELETE and MOVE are applied to a collection, these 
  operations affect all the descendents of the collection, but they do so 
  indirectly.  There is no need to visit each descendent in order to 
  process the request.  Consequently, even if there are redirect reference 
  resources in a tree that is being deleted or moved, there will be no 302 
  responses from the redirect reference resources. 
</t>
</section>

<section title="LOCK on a Collection That Contains Redirect References">

<t>
  LOCK poses special problems because it is atomic. An attempt to lock 
  (with Depth: infinity) a collection that contains redirect references 
  will always fail.  The Multi-Status response will contain a 302 response 
  for each redirect reference.
</t>
<t>
  Reference-aware clients can lock the collection by using Apply-To-Redirect-Ref,
  and, if desired, lock the targets of the redirect 
  references individually.
</t>
<t>
  Non-referencing clients must resort to locking each resource 
  individually.
</t>
</section>

<section title="Example: PROPFIND on a Collection with Redirect Reference Resources">

<t>
  Suppose a PROPFIND request with Depth: infinity is submitted to the 
  following collection, with the members shown here:
</t>
<figure><artwork>
http://www.svr.com/MyCollection/
     (non-reference resource) diary.html
     (redirect reference resource) nunavut
</artwork></figure>
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
PROPFIND /MyCollection/ HTTP/1.1
Host: www.svr.com
Depth: infinity
Content-Type: text/xml
Content-Length: xxxx

&lt;?xml version="1.0" ?&gt;
&lt;D:propfind xmlns:D="DAV: "&gt;
  &lt;D:prop xmlns:J="http://www.svr.com/jsprops/"&gt;
    &lt;D:resourcetype/&gt;
    &lt;J:keywords/&gt;
  &lt;/D:prop&gt;
&lt;/D:propfind&gt;
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Length: xxxx

&lt;?xml version="1.0" ?&gt;
&lt;D:multistatus xmlns:D="DAV:" xmlns:J="http://www.svr.com/jsprops/"&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
        &lt;J:keywords&gt;diary, interests, hobbies&lt;/J:keywords&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/diary.html&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype/&gt;
        &lt;J:keywords&gt;diary, travel, family, history&lt;/J:keywords&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/nunavut&lt;/D:href&gt;
    &lt;D:status&gt;HTTP/1.1 302 Found&lt;/D:status&gt;
    &lt;D:prop&gt;
      &lt;D:location&gt; 
        &lt;D:href&gt;http://www.inac.gc.ca/art/inuit/&lt;/D:href&gt;
      &lt;/D:location&gt;
      &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
    &lt;/D:prop&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;
</artwork>
</figure>
<t>
  In this example the Depth header is set to infinity, and the Apply-To-Redirect-Ref
  header is not used.  The collection contains one URI that 
  identifies a redirect reference resource.  The response element for the 
  redirect reference resource has a status of 302 (Found), and includes a 
  DAV:prop element with the DAV:location pseudo-property and the 
  DAV:resourcetype property to allow clients to retrieve the properties of 
  its target resource.  (The response element for the redirect reference 
  resource does not include the requested properties.  The client can 
  submit another PROPFIND request to the URI in the DAV:location pseudo-property
  to retrieve those properties.) 
</t>
</section>

<section title="Example: PROPFIND with Apply-To-Redirect-Ref on a Collection with Redirect Reference Resources">
<t>
  Suppose a PROPFIND request with <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>Apply-To-Redirect-Ref</ed:del>
  <ed:ins>"Apply-To-Redirect-Ref: T"</ed:ins></ed:replace> and Depth: 
  infinity is submitted to the following collection, with the members 
  shown here:
</t>
<figure><artwork>
/MyCollection/
     (non-reference resource) diary.html
     (redirect reference resource) nunavut
</artwork></figure>
<figure><preamble>
&gt;&gt; Request:</preamble>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17" ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>
<artwork>
PROPFIND /MyCollection/ HTTP/1.1
Host: www.svr.com
Depth: infinity
Apply-To-Redirect-Ref:
Content-Type: text/xml
Content-Length: xxxx

&lt;?xml version="1.0" ?&gt;
&lt;D:propfind xmlns:D="DAV:"&gt;
  &lt;D:prop&gt;
    &lt;D:resourcetype/&gt;
    &lt;D:reftarget/&gt;
  &lt;/D:prop&gt;
&lt;/D:propfind&gt;
</artwork>
</ed:del><ed:ins>
<artwork>
PROPFIND /MyCollection/ HTTP/1.1
Host: example.com
Depth: infinity
Apply-To-Redirect-Ref: T
Content-Type: text/xml
Content-Length: xxxx

&lt;?xml version="1.0" ?&gt;
&lt;D:propfind xmlns:D="DAV:"&gt;
  &lt;D:prop&gt;
    &lt;D:resourcetype/&gt;
    &lt;D:reftarget/&gt;
  &lt;/D:prop&gt;
&lt;/D:propfind&gt;
</artwork>
</ed:ins></ed:replace>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17" ed:resolves="rfc2606-compliance"><ed:del>
<artwork>
HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Length: xxxx

&lt;?xml version="1.0" ?&gt;
&lt;D:multistatus xmlns:D="DAV:"&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;&lt;D:reftarget/&gt;&lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 404 Not Found&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/diary.html&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype/&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;&lt;D:reftarget/&gt;&lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 404 Not Found&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/nunavut&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
        &lt;D:reftarget&gt;
          &lt;D:href&gt;http://www.inac.gc.ca/art/inuit/&lt;/D:href&gt;
        &lt;/D:reftarget&gt;
      &lt;/D:prop&gt;
    &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;
</artwork>
</ed:del><ed:ins>
<artwork>
HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Length: xxxx

&lt;?xml version="1.0" ?&gt;
&lt;D:multistatus xmlns:D="DAV:"&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;/MyCollection/&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;&lt;D:reftarget/&gt;&lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 404 Not Found&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;/MyCollection/diary.html&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype/&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;&lt;D:reftarget/&gt;&lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 404 Not Found&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;/MyCollection/nunavut&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
        &lt;D:reftarget&gt;
          &lt;D:href&gt;http://www.inac.gc.ca/art/inuit/&lt;/D:href&gt;
        &lt;/D:reftarget&gt;
      &lt;/D:prop&gt;
    &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;
</artwork>
</ed:ins></ed:replace>
</figure>
<t>
  Since the <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"
  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>Apply-To-Redirect-Ref</ed:del>
  <ed:ins>"Apply-To-Redirect-Ref: T"</ed:ins></ed:replace> header is present, the response shows 
  the properties of the redirect reference resource in the collection 
  rather than reporting a 302 status.
</t>
</section>

<section title="Example: COPY on a Collection That Contains a Redirect Reference Resource">
<t>
  Suppose a COPY request is submitted to the following collection, with 
  the members shown:
</t>
<figure><artwork>
/MyCollection/
     (non-reference resource) diary.html
     (redirect reference resource) nunavut with target       
                                /Someplace/nunavut.map
</artwork></figure>
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
COPY /MyCollection/ HTTP/1.1
Host: www.svr.com
Depth: infinity
Destination: http://www.svr.com/OtherCollection/
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 207 Multi-Status
Content-Type: text/xml; charset="utf-8"
Content-Length: xxx

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;D:multistatus xmlns:D="DAV:"&gt;
  &lt;D:response&gt;
  &lt;D:href&gt;http://www.svr.com/MyCollection/nunavut&lt;/D:href&gt;
  &lt;D:status&gt;HTTP/1.1 302 Found&lt;/D:status&gt;
  &lt;D:prop&gt;
    &lt;D:location&gt; 
      &lt;D:href&gt;http://www.svr.com//Someplace/nunavut.map&lt;/D:href&gt;
    &lt;/D:location&gt;
    &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
  &lt;/D:prop&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;
</artwork>
</figure>
<t>
  In this case, since /MyCollection/nunavut is a redirect reference 
  resource, the COPY operation was only a partial success.  The redirect 
  reference resource was not copied, but a 302 response was returned for 
  it.  So the resulting collection is as follows:
</t>
<figure><artwork>
/OtherCollection/
      (non-reference resource) diary.html
</artwork></figure>
</section>


<section title="Example: LOCK on a Collection That Contains a Redirect Reference Resource">

<t>
  Suppose a LOCK request is submitted to the following collection, with 
  the members shown:
</t>
<figure><artwork>
/MyCollection/
     (non-reference resource) diary.html
     (redirect reference resource) nunavut
</artwork></figure>
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
LOCK /MyCollection/ HTTP/1.1
Host: www.svr.com
Content-Type: text/xml
Content-Length: nnnn
Authorizaton: Digest username="jas",
   realm=jas@webdav.sb.aol.com, nonce=". . . ",
   uri="/MyCollection/tuva",
   response=". . . ", opaque=". . . "

&lt;?xml version="1.0" ?&gt;
&lt;D:lockinfo xmlns:D="DAV:"&gt;
  &lt;D:lockscope&gt;&lt;D:exclusive/&gt;&lt;/D:lockscope&gt;
  &lt;D:locktype&gt;&lt;D:write/&gt;&lt;/D:locktype&gt;
  &lt;D:owner&gt;
    &lt;D:href&gt;http://www.svr.com/~jas/contact.html&lt;/D:href&gt;
  &lt;/D:owner&gt;
&lt;/D:lockinfo&gt;
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Length: nnnn

&lt;?xml version="1.0" ?&gt;
&lt;D:multistatus xmlns:D="Dav:"&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;&lt;D:lockdiscovery/&gt;&lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 424 Failed Dependency&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/diary.html&lt;/D:href&gt;
    &lt;D:status&gt;HTTP/1.1 424 Failed Dependency&lt;/D:status&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;http://www.svr.com/MyCollection/nunavut&lt;/D:href&gt;
    &lt;D:status&gt;HTTP/1.1 302 Found&lt;/D:status&gt;
    &lt;D:prop&gt;
      &lt;D:location&gt;
        &lt;D:href&gt;http://www.inac.gc.ca/art/inuit/&lt;/D:href&gt;
      &lt;/D:location&gt;
      &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
    &lt;/D:prop&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;
</artwork>
</figure>
<t>
  The server returns a 302 response code for the redirect reference 
  resource in the collection.  Consequently, neither the collection nor 
  any of the resources identified by its internal member URIs were locked.  
  A referencing-aware client can submit a separate LOCK request to the URI 
  in the DAV:location pseudo-property returned for the redirect reference 
  resource, and can resubmit the LOCK request with the Apply-To-Redirect-Ref
  header to the collection.  At that point both the reference resource 
  and its target resource will be locked (as well as the collection and 
  all the resources identified by its other members).
</t>
</section>
</section>

<section title="Operations on Targets of Redirect Reference Resources" anchor="operations.on.targets.of.redirect.reference.resources">
<t>
  Operations on targets of redirect reference resources have no effect on 
  the reference resource. 
</t>
</section>

<section title="Relative URIs in DAV:reftarget">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-06-reftarget-relative" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0222.html">
  <ed:item date="2000-01-29" entered-by="joe@orton.demon.co.uk">
    Why does the spec talk about relative URIs in DAV:reftarget in MKRESOURCE
    requests? Is the server required to resolve the relative URI and store it as absolute?
    Is the server required to keep DAV:reftarget pointing to the target resource
    as the reference / target move, or is DAV:reftarget a dead property?
  </ed:item>
  <ed:resolution datetime="2003-10-13">
    DAV:reftarget is readonly and present only on redirect references that are
    also WebDAV resources.
    Add a method for setting the target. Change definition of Redirect-Ref header
    so that it has the target as its value (comes back on all 302 responses).
    Server MUST store the target exactly as it is set. It MUST NOT resolve
    relatives to absolutes and MUST NOT update if target resource moves.
    See also issue 17, 43, 50, 57
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-57-noautoupdate" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0307.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Add language to forbid servers from automatically updating redirect resources when their targets move.
  </ed:item>
  <ed:resolution>
    Agreed.
    See also issue 6.
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-71-relative" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    Section 9:
    Base URI should be the Request-URI or href minus its final segment.
  </ed:item>
  <ed:resolution datetime="2003-10-08">
    Original WG comment: Fix this. <br/>
    However, this is just a misunderstanding. The process of resolving a relative
    URI against a hierarchical base URI already involves removal of the last
    path segment, so the draft is correct here.
  </ed:resolution>
</ed:issue>
<t>
  The URI in the href in a DAV:reftarget property MAY be a relative URI.  
  In this case, the base URI to be used for resolving the relative URI to 
  absolute form is the URI used in the HTTP message to identify the 
  redirect reference resource to which the DAV:reftarget property belongs.  
</t>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="9-MKRESOURCE-vs-relative-URI" type="change" status="closed">
  <ed:item date="2003-10-08" entered-by="julian.reschke@greenbytes.de">
    Do not say anything about MKRESOURCE vs relative URIs. The server is
    supposed to store the relative URI, thus the issue of resolving 
    the URI does only apply upon retrieval, not creation.
  </ed:item>
</ed:issue>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" ed:resolves="9-MKRESOURCE-vs-relative-URI" datetime="2003-10-08"><ed:del>
<t>
  When DAV:reftarget occurs in the body of a MKRESOURCE request, the base 
  URI is constructed as follows: Its scheme component is "http", its 
  authority component is the value of the Host header in the request, and 
  its path component is the Request-URI in the request.  See Section 5 of 
  <xref target="RFC2396"/> for a discussion of relative URI references and how to resolve 
  them.
</t>
</ed:del></ed:replace>
<t>
  When DAV:reftarget appears in the context of a Multi-Status response, it 
  is in a DAV:response element that contains a single DAV:href element.  
  The value of this DAV:href element serves as the base URI for resolving 
  a relative URI in DAV:reftarget.  The value of DAV:href may itself be 
  relative, in which case it must be resolved first in order to serve as 
  the base URI for the relative URI in DAV:reftarget.  If the DAV:href 
  element is relative, its base URI is constructed from the scheme 
  component "http", the value of the Host header in the request, and the 
  request-URI.
</t>

<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-13" ed:resolves="9-MKRESOURCE-vs-relative-URI"><ed:del>
<section title="Example: Resolving a Relative URI in a MKRESOURCE Request">
<figure><preamble>
&gt;&gt; Request:</preamble>
<artwork>
MKRESOURCE /north/inuvik HTTP/1.1
Host: www.somehost.edu
Content-Type: text/xml; charset="utf-8"
Content-Length: xxx

&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;D:propertyupdate xmlns:D="DAV:"&gt;
  &lt;D:set&gt;
    &lt;D:prop&gt;
      &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
      &lt;D:reftarget&gt;
        &lt;D:href&gt;mapcollection/inuvik.gif&lt;/D:href&gt;
      &lt;/D:reftarget&gt;
    &lt;/D:prop&gt;
  &lt;/D:set&gt;
&lt;/D:propertyupdate&gt;
</artwork>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 201 Created
</artwork>
</figure>
<t>
  In this example, the base URI is http://www.somehost.edu/north/inuvik.  
  Then, following the rules in <xref target="RFC2396"/> Section 5, the relative URI in 
  DAV:reftarget resolves to the absolute URI 
  http://www.somehost.edu/north/mapcollection/inuvik.gif. 
</t>
</section>
</ed:del></ed:replace>

<section title="Example: Resolving a Relative URI in a Multi-Status Response">
<figure><preamble>
&gt;&gt; Request:</preamble>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17" ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>
<artwork>
PROPFIND /geog/ HTTP/1.1
Host: www.xxsvr.com
Apply-To-Redirect-Ref:
Depth: 1
Content-Type: text/xml
Content-Length: nnn

&lt;?xml version="1.0" ?&gt;
&lt;D:propfind xmlns:D="DAV:"&gt;
  &lt;D:prop&gt;
    &lt;D:resourcetype/&gt;
    &lt;D:reftarget/&gt;
  &lt;/D:prop&gt;
&lt;/D:propfind&gt;
</artwork>
</ed:del><ed:ins>
<artwork>
PROPFIND /geog/ HTTP/1.1
Host: example.com
Apply-To-Redirect-Ref: T
Depth: 1
Content-Type: text/xml
Content-Length: nnn

&lt;?xml version="1.0" ?&gt;
&lt;D:propfind xmlns:D="DAV:"&gt;
  &lt;D:prop&gt;
    &lt;D:resourcetype/&gt;
    &lt;D:reftarget/&gt;
  &lt;/D:prop&gt;
&lt;/D:propfind&gt;
</artwork>
</ed:ins></ed:replace>
</figure>
<figure><preamble>
&gt;&gt; Response:</preamble>
<artwork>
HTTP/1.1 207 Multi-Status
Content-Type: text/xml
Content-Length: nnn

&lt;?xml version="1/0" ?&gt;
&lt;D:multistatus xmlns:D="DAV:"&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;/geog/&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:collection/&gt;&lt;/D:resourcetype&gt;
      &lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;&lt;D:reftarget/&gt;&lt;/D:prop&gt;
      &lt;D:status&gt;HTTP/1.1 404 Not Found&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
  &lt;D:response&gt;
    &lt;D:href&gt;/geog/stats.html&lt;/D:href&gt;
    &lt;D:propstat&gt;
      &lt;D:prop&gt;
        &lt;D:resourcetype&gt;&lt;D:redirectref/&gt;&lt;/D:resourcetype&gt;
        &lt;D:reftarget&gt;
          &lt;D:href&gt;statistics/population/1997.html&lt;/D:href&gt;
        &lt;/D:reftarget&gt;
      &lt;/D:prop&gt;
    &lt;D:status&gt;HTTP/1.1 200 OK&lt;/D:status&gt;
    &lt;/D:propstat&gt;
  &lt;/D:response&gt;
&lt;/D:multistatus&gt;
</artwork>
</figure>
<t>
  In this example, the relative URI statistics/population/1997.html is 
  returned as the value of reftarget for the reference resource identified 
  by href /geog/stats.html.  The href is itself a relative URI, which 
  resolves to <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17" ed:resolves="rfc2606-compliance"><ed:del>
http://www.xxsrv.com/geog/stats.html</ed:del><ed:ins>http://example.com/geog/stats.html</ed:ins></ed:replace>.  This is the base URI 
  for resolving the relative URI in reftarget.  The absolute URI of 
  reftarget is <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17" ed:resolves="rfc2606-compliance">
  <ed:del>http://www.xxsrv.com/geog/statistics/population/1997.html</ed:del>
  <ed:ins>http://example.com/geog/statistics/population/1997.html</ed:ins></ed:replace>.
</t>
</section>
</section>

<section title="Redirect References to Collections" anchor="redirect.references.to.collections">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-53-s10" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0304.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    The behavior described in this section would have a very serious impact on the efficiency of mapping Request-URIs to resources in HTTP request processing.
    Also specify another type of redirect resource that does not behave as in section 10, but instead would "expose the behavior we see today in various HTTP servers that allow their users to create 300 resources." Be sure we know what behavior will be if the redirect location is not an HTTP URL, but, say ftp.
  </ed:item>
  <ed:resolution>
    We won't define 2 sorts of redirect references here.
    Servers SHOULD respond with 302 as described here, but if they can't do that, respond with 404 Not Found.
    (It's hard to modularize the behavior specified - it impacts processing Not Found cases of all methods, so you can't just add it to an HTTP server in a redirect ref module.)
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-72-trailingslash" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    Section 10: Forbid DAV:reftarget from ending in "/"
  </ed:item>
  <ed:item entered-by="julian.reschke@greenbytes.de">
    (last call WG response):
    Make the note warn about the possibility of two slashes in a row, recommend
    against ending target with a slash, since that could result in two slashes in a row.
  </ed:item>
  <ed:resolution datetime="2003-10-09">
    It seems that the rule in the 3rd paragraph already explains how to deal
    with this situation. No change.
  </ed:resolution>
</ed:issue>
<t>
  In a Request-URI /segment1/segment2/segment3, any of the three segments 
  may identify a redirect reference resource.  (See <xref target="RFC2396"/>, Section 3.3, 
  for definitions of "path" and "segment".)  If any segment in a Request-
  URI identifies a redirect reference resource, the response is a 302.  
  The value of the Location header in the 302 response is as follows: 
</t>
<t>
  The leftmost path segment of the request-URI that identifies a redirect 
  reference resource, together with all path segments and separators to 
  the left of it, is replaced by the value of the redirect reference 
  resource's DAV:reftarget property (resolved to an absolute URI).  The 
  remainder of the request-URI is concatenated to this path.  
</t>
<t>
  Note: If the DAV:reftarget property ends with a "/" and the remainder of 
  the Request-URI is non-empty (and therefore must begin with a "/"), the 
  final "/" in the DAV:reftarget property is dropped before the remainder 
  of the Request-URI is appended.
</t>
<t>
  Consider Request-URI /x/y/z.html.  Suppose that /x/ is a redirect 
  reference resource whose target resource is collection /a/, which 
  contains redirect reference resource y whose target resource is 
  collection /b/, which contains redirect reference resource z.html whose 
  target resource is /c/d.html.
</t>
<figure><artwork>
/x/y/z.html
    |
    | /x -&gt; /a
    |
    v
/a/y/z.html
    |
    | /a/y -&gt; /b
    |
    v
/b/z.html
    |
    | /b/z.html -&gt; /c/d.html
    |
    v
/c/d.html
</artwork></figure>
<t>
  In this case the client must follow up three separate 302 responses 
  before finally reaching the target resource.  The server responds to the 
  initial request with a 302 with Location: /a/y/z.html, and the client 
  resubmits the request to /a/y/z.html.  The server responds to this 
  request with a 302 with Location: /b/z.html, and the client resubmits 
  the request to /b/z.html.  The server responds to this request with a 
  302 with Location: /c/d.html, and the client resubmits the request to 
  /c/d.html.  This final request succeeds.
</t>
</section>


<section title="Headers" anchor="headers">

<section title="Redirect-Ref Response Header" anchor="header.redirect-ref">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-50-blindredirect" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0300.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Replace current language explaining the purpose of the Redirect-Ref header with language that simply states that it marks blind 302 responses from redirect resources. (Section 6.3, 11.1)
  </ed:item>
  <ed:resolution datetime="2003-10-02">
    Section 6.3 was removed in response to issue 48.
    In 11.1, change the definition of the Redirect-Ref header to have the value of the target (relative URI) as its value. Then we don't need a method for retrieving the target's relative URI. Presence of the Redirect-Ref header lets the client know that the resource accepts Apply-To-RR header and the new method for updating target.
    Reject Yaron's suggested language, but make the above changes.
  </ed:resolution>
</ed:issue>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-74-terminology" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0316.html">
  <ed:item date="2000-02-14" entered-by="reuterj@ira.uka.de">
    "plain HTTP/1.1 redirect" - find some good name for this an use it consistently
  </ed:item>
  <ed:resolution datetime="2003-10-02">
    Remove the whole sentence.
  </ed:resolution>
</ed:issue>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-02" ed:resolves="lc-50-blindredirect"><ed:del>
<t>
  Redirect-Ref = "Redirect-Ref:" 
</t>
</ed:del><ed:ins>
<figure><artwork>
Redirect-Ref = "Redirect-Ref:" (absoluteURI | relativeURI)
               ; see sections 3 and 5 of [RFC2396]
</artwork></figure>
</ed:ins></ed:replace>
<t>
  The Redirect-Ref header is used in all 302 responses from redirect 
  reference resources.<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-02" ed:resolves="lc-74-terminology"><ed:del>  Its presence informs reference-aware clients that
  the response is not a plain HTTP/1.1 redirect, but is a response from a  
  redirect reference resource.</ed:del></ed:replace>
  <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-02" ed:resolves="lc-50-blindredirect"><ed:ins>
  The value is the (possibly relative) URI of the link target as specified during
  redirect reference resource creation. 
  </ed:ins></ed:replace>
</t>
</section>

<section title="Apply-To-Redirect-Ref Request Header" anchor="header.apply-to-redirect-ref">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="11.2-apply-to-redirect-ref-syntax" type="change" status="closed">
  <ed:item date="2003-10-17" entered-by="julian.reschke@greenbytes.de">
    Many toolkits have problems sending empty HTTP headers (optimizing them
    away).
  </ed:item>
  <ed:resolution datetime="2003-10-17">
    Define values "T" and "F" (similar to WevDAV Overwrite header). This will
    also allow clients to express that they are aware of redirect extensions
    without also having to apply the request to the reference resource.
  </ed:resolution>
</ed:issue>

<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17" ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>
<t>
  Apply-To-Redirect-Ref = "Apply-To-Redirect-Ref" ":" 
</t>
</ed:del><ed:ins>
<figure><artwork>
Apply-To-Redirect-Ref = "Apply-To-Redirect-Ref" ":" ("T" | "F")
</artwork></figure>
</ed:ins></ed:replace>
<t>
  The optional Apply-To-Redirect-Ref header can be used on any request to 
  a redirect reference resource.  When it is <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-17"  ed:resolves="11.2-apply-to-redirect-ref-syntax"><ed:del>used</ed:del><ed:ins>present and set to "T"</ed:ins></ed:replace>, the request MUST be 
  applied to the reference resource itself, and a 302 response MUST NOT be 
  returned.
</t>
<t>
  If the Apply-To-Redirect-Ref header is used on a request to any other 
  sort of resource besides a redirect reference resource, the server 
  MUST ignore it. 
</t>
</section>
</section>


<section title="Properties">

<section title="reftarget Property" anchor="reftarget.property">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="12.1-property-name" type="change" status="open">
  <ed:item date="2003-10-06" entered-by="julian.reschke@greenbytes.de">
    Sync names for DAV:reftarget property and "Redirect-Ref" response headers.
  </ed:item>
</ed:issue>
<t>
<list style="hanging">
<t hangText="Name:">reftarget</t>
<t hangText="Namespace:">DAV:</t>
<t hangText="Purpose:">A property of redirect reference resources that provides an 
            efficient way for clients to discover the URI of the target 
            resource.  This is a read-only property after its initial 
            creation. Its value can only be set in a MKRESOURCE request.</t>
<t hangText="Value:">href containing the URI of the target resource.  This value 
            MAY be a relative URI.  The reftarget property can occur in 
            the entity bodies of MKRESOURCE requests and of responses to 
            PROPFIND requests.</t>
</list>
</t>
<figure><artwork>
&lt;!ELEMENT reftarget href &gt;
</artwork></figure>
</section>

<section title="location Pseudo-Property" anchor="PROPERTY_location">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-76-location" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0359.html">
  <ed:item date="2000-02-22" entered-by="reuterj@ira.uka.de">
    12.2:
    Make DAV:location a real (live) property, get rid of the DAV:reftarget property
  </ed:item>
</ed:issue>
<t>
<list style="hanging">
<t hangText="Name:">location</t>
<t hangText="Namespace:">DAV:</t>
<t hangText="Purpose:">For use with 302 (Found) response codes in Multi-Status 
            responses.  It contains the absolute URI of the temporary 
            location of the resource.  In the context of redirect 
            reference resources, this value is the absolute URI of the 
            target resource.  It is analogous to the Location header in 
            HTTP 302 responses defined in <xref target="RFC2616"/> Section 10.3.3 "302 
            Found."  Including the location pseudo-property in a Multi-Status
            response requires an extension to the syntax of the 
            DAV:response element defined in <xref target="RFC2518"/>, which is defined 
            in <xref target="extensions.to.response.element"/> below.  This pseudo-property is not expected 
            to be stored on the reference resource. It is modeled as a 
            property only so that it can be returned inside a DAV:prop 
            element in a Multi-Status response.</t>
<t hangText="Value:">href containing the absolute URI of the target resource.</t>
</list>
</t>
<figure><artwork>
&lt;!ELEMENT location href &gt;
</artwork></figure>
</section>
</section>


<section title="XML Elements">

<section title="redirectref XML Element" anchor="redirectref.xml.element">
<t>
<list style="hanging">
<t hangText="Name:">redirectref</t>
<t hangText="Namespace:">DAV:</t>
<t hangText="Purpose:">Used as the value of the DAV:resourcetype property to   
            specify that the resource type is a redirect reference   
            resource.</t>
</list>
</t>
<figure><artwork>
&lt;!ELEMENT redirectref EMPTY &gt;
</artwork></figure>
</section>
</section>


<section title="Extensions to the DAV:response XML Element for Multi-Status Responses" anchor="extensions.to.response.element">
<t>
  As described in <xref target="operations.on.collections.that.contain.redirect.reference.resources"/>, the DAV:location pseudo-property and the 
  DAV:resourcetype property may be returned in the DAV:response element of 
  a 207 Multi-Status response, to allow clients to resubmit their requests 
  to the target resource of a redirect reference resource.  
</t>
<t>
  Whenever these properties are included in a Multi-Status response, they 
  are placed in a DAV:prop element associated with the href to which they 
  apply.  This structure provides a framework for future extensions by 
  other standards that may need to include additional properties in their 
  responses.
</t>
<t>
  Consequently, the definition of the DAV:response XML element changes to 
  the following:
</t>
<figure><artwork>
&lt;!ELEMENT response (href, ((href*, status, prop?) | (propstat+)), 
responsedescription?) &gt;
</artwork></figure>
</section>


<section title="Capability Discovery" anchor="capability.discovery">
<t>
  Sections 9.1 and 15 of <xref target="RFC2518"/> describe the use of compliance classes 
  with the DAV header in responses to OPTIONS, to indicate which parts of 
  the WebDAV Distributed Authoring protocols the resource supports. This 
  specification defines an OPTIONAL extension to <xref target="RFC2518"/>.  It defines a 
  new compliance class, called redirectrefs, for use with the DAV header 
  in responses to OPTIONS requests.  If a resource does support redirect 
  references, its response to an OPTIONS request may indicate that it 
  does, by listing the new redirectrefs compliance class in the DAV 
  header<ed:ins> </ed:ins>and by listing the MKRESOURCE method as one it supports.
</t>
<t>
  When responding to an OPTIONS request, any type of resource can include 
  redirectrefs in the value of the DAV header.  Doing so indicates that 
  the server permits a redirect reference resource at the request URI.
</t>
<section title="Example: Discovery of Support for Redirect Reference Resources">
<figure><preamble>
&gt;&gt; Request:</preamble>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-20" ed:resolves="rfc2606-compliance"><ed:del>
<artwork>
OPTIONS /somecollection/someresource HTTP/1.1
HOST: somehost.org
</artwork>
</ed:del><ed:ins>
<artwork>
OPTIONS /somecollection/someresource HTTP/1.1
Host: example.org
</artwork>
</ed:ins></ed:replace>
</figure>
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="15.1-options-response" type="change" status="closed">
  <ed:item date="2003-10-20" entered-by="julian.reschke@greenbytes.de">
    Fix OPTIONS response ("Public" header mentioned, "Allow" header value
    line break). Remove irrelevant response headers.
  </ed:item>
  <ed:resolution datetime="2003-10-20">
    Fix.
  </ed:resolution>
</ed:issue>
<figure><preamble>
&gt;&gt; Response:</preamble>
<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-20" ed:resolves="15.1-options-response"><ed:del>
<artwork>
HTTP/1.1 200 OK
Date: Tue, 20 Jan 1998 20:52:29 GMT
Connection: close
Accept-Ranges: none
Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE,
MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, MKRESOURCE
DAV: 1, 2, redirectrefs
</artwork>
</ed:del><ed:ins>
<artwork>
HTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, COPY, MOVE
Allow: MKCOL, PROPFIND, PROPPATCH, LOCK, UNLOCK, MKRESOURCE
DAV: 1, 2, redirectrefs
</artwork>
</ed:ins></ed:replace>
</figure>
<t>
  The DAV header in the response indicates that the resource 
  /somecollection/someresource is level 1 and level 2 compliant, as 
  defined in <xref target="RFC2518"/>.  In addition, /somecollection/someresource supports 
  redirect reference resources.  The Allow header indicates that 
  MKRESOURCE requests can be submitted to /somecollection/someresource.
  <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-20" ed:resolves="15.1-options-response"><ed:del>  
  The Public header shows that other Request-URIs on the server support 
  additional methods.
  </ed:del></ed:replace>
</t>
</section>
</section>

<section title="Security Considerations" anchor="security.considerations">
<t>
  This section is provided to make applications that implement this protocol aware of the 
  security implications of this protocol. 
</t>
<t>
  All of the security considerations of HTTP/1.1 and the WebDAV 
  Distributed Authoring Protocol specification also apply to this protocol 
  specification.  In addition, redirect reference resources introduce 
  several new security concerns and increase the risk of some existing 
  threats.  These issues are detailed below.
</t>

<section title="Privacy Concerns">
<t>
  By creating redirect reference resources on a trusted server, it is 
  possible for a hostile agent to induce users to send private information 
  to a target on a different server.   This risk is mitigated somewhat, 
  since clients are required to notify the user of the redirection for any 
  request other than GET or HEAD. (See <xref target="RFC2616"/>, Section 10.3.3 302 Found.)
</t>
</section>

<section title="Redirect Loops">
<t>
  Although redirect loops were already possible in HTTP 1.1, the 
  introduction of the MKRESOURCE method creates a new avenue for clients 
  to create loops accidentally or maliciously.  If the reference resource 
  and its target are on the same server, the server may be able to detect 
  MKRESOURCE requests that would create loops. See also <xref target="RFC2616"/>, Section 
  10.3 "Redirection 3xx."
</t>
</section>

<section title="Redirect Reference Resources and Denial of Service">
<t>
  Denial of service attacks were already possible by posting URLs that 
  were intended for limited use at heavily used Web sites.  The 
  introduction of MKRESOURCE creates a new avenue for similar denial of 
  service attacks.  Clients can now create redirect reference resources at 
  heavily used sites to target locations that were not designed for heavy 
  usage.
</t>
</section>






<section title="Revealing Private Locations">

<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-79-accesscontrol" type="change" status="closed" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0359.html">
  <ed:item date="2000-02-22" entered-by="reuterj@ira.uka.de">
    Section 16.4:
    "In some environments, the owner of a resource might be able to use access control to prevent others from creating references to that resource."
    That would not be consistent with the concept of redirect references as weak links (e.g. think of moving a resource to a different locationo that is already the target of some redirection reference.
  </ed:item>
  <ed:resolution datetime="2003-10-02">
    Remove the statement.
  </ed:resolution>
</ed:issue>
<t>
  There are several ways that redirect reference resources may reveal 
  information about collection structures.  First, the DAV:reftarget 
  property of every redirect reference resource contains the URI of the 
  target resource.  Anyone who has access to the reference resource can 
  discover the collection path that leads to the target resource.   The 
  owner of the target resource may have wanted to limit knowledge of this 
  collection structure.
</t>
<t>
  Sufficiently powerful access control mechanisms can control this risk to 
  some extent.  Property-level access control could prevent users from 
  examining the DAV:reftarget property.  (The Location header returned in 
  responses to requests on redirect reference resources reveals the same 
  information, however.)<ed:replace datetime="2003-10-02" ed:entered-by="julian.reschke@greenbytes.de" ed:resolves="lc-79-accesscontrol"><ed:del>  In some environments, the owner of a resource 
  might be able to use access control to prevent others from creating 
  references to that resource.</ed:del></ed:replace>
</t>
<t>
  This risk is no greater than the similar risk posed by HTML links.
</t>
</section>


</section>


<section title="Internationalization Considerations">
<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-80-i18n" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0359.html">
  <ed:item date="2000-02-22" entered-by="reuterj@ira.uka.de">
    Section 17:
    Could get rid of a lot of this section, since this protocol extends WebDAV. Just reference [WebDAV].
  </ed:item>
  <ed:item date="2003-10-02" entered-by="julian.reschke@greenbytes.de">
    True, but I note that other specs have re-stated these considerations as well.
    Opinions?
  </ed:item>
</ed:issue>
<t>
  This specification follows the practices of <xref target="RFC2518"/> in encoding all 
  human-readable content using XML <xref target="XML"/> and in the treatment of names.  
  Consequently, this specification complies with the IETF Character Set 
  Policy <xref target="RFC2277"/>.
</t>
<t>
  WebDAV applications MUST support the character set tagging, character 
  set encoding, and the language tagging functionality of the XML 
  specification.  This constraint ensures that the human-readable content 
  of this specification complies with <xref target="RFC2277"/>.
</t>
<t>
  As in <xref target="RFC2518"/>, names in this specification fall into three categories: 
  names of protocol elements such as methods and headers, names of XML 
  elements, and names of properties.  Naming of protocol elements follows 
  the precedent of HTTP, using English names encoded in USASCII for 
  methods and headers.  The names of XML elements used in this 
  specification are English names encoded in UTF-8.
</t>
<t>
  For error reporting, <xref target="RFC2518"/> follows the convention of HTTP/1.1 status 
  codes, including with each status code a short, English description of 
  the code (e.g., 423 Locked).  Internationalized applications will ignore 
  this message, and display an appropriate message in the user's language 
  and character set.
</t>
<t>
  This specification introduces no new strings that are displayed to users 
  as part of normal, error-free operation of the protocol.
</t>
<t>
  For rationales for these decisions and advice for application 
  implementors, see <xref target="RFC2518"/>.
</t>
</section>

<section title="IANA Considerations" anchor="iana.considerations">

<ed:issue xmlns='http://www.w3.org/1999/xhtml' name="lc-55-iana" type="change" status="open" href="http://lists.w3.org/Archives/Public/w3c-dist-auth/2000JanMar/0305.html">
  <ed:item date="2000-02-11" entered-by="yarong@Exchange.Microsoft.com">
    Expand the IANA section to list all methods, headers, XML elements, MIME types, URL schemes, etc., defined by the spec.
  </ed:item>
  <ed:resolution>
    Agreed.
  </ed:resolution>
</ed:issue>
<t>
  All IANA considerations mentioned in <xref target="RFC2518"/> also 
  apply to this document.
</t>
</section>

<ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-09"><ed:ins>
<section title="Contributors">
<t>
  Many thanks to Jason Crawford, Jim Davis, Chuck Fay and Judith Slein who can take credit
  for big parts of the original design of this specification. 
</t>
</section>
</ed:ins></ed:replace>

<section title="Acknowledgements">
<t>
  This <ed:replace ed:entered-by="julian.reschke@greenbytes.de" datetime="2003-10-08"><ed:del>draft</ed:del><ed:ins>document</ed:ins></ed:replace> has benefited from thoughtful discussion by Jim Amsden, Peter 
  Carlson, Steve Carter, Tyson Chihaya, Ken Coar, Ellis Cohen, Bruce 
  Cragun, Spencer Dawkins, Mark Day, Rajiv Dulepet, David Durand, Roy 
  Fielding, Yaron Goland, Fred Hitt, Alex Hopmann, James Hunt, Marcus 
  Jager, Chris Kaler, Manoj Kasichainula, Rohit Khare, Daniel LaLiberte, 
  Steve Martin, Larry Masinter, Jeff McAffer, Joe Orton, 
  Surendra Koduru Reddy, Juergen Reuter, Max 
  Rible, Sam Ruby, Bradley Sergeant, Nick Shelness, John Stracke, John 
  Tigue, John Turner, Kevin Wiggen, and others.
</t>
</section>

	</middle>
    <back>
        
<references title="Normative References">

<reference anchor="RFC2277">
  <front>
    <title abbrev="Charset Policy">IETF Policy on Character Sets and Languages</title>
    <author initials="H.T." surname="Alvestrand" fullname="Harald Tveit Alvestrand">
    <organization>UNINETT</organization>
    <address>
    <postal>
    <street>P.O.Box 6883 Elgeseter</street>
    <street>N-7002 TRONDHEIM</street>
    <country>NORWAY</country></postal>
    <phone>+47 73 59 70 94</phone>
    <email>Harald.T.Alvestrand@uninett.no</email></address></author>
    <date month="January" year="1998"/>
    <area>Applications</area>
    <keyword>character encoding</keyword>
  </front>
  <seriesInfo name="BCP" value="18"/>
  <seriesInfo name="RFC" value="2277"/>
</reference>

<reference anchor="RFC2119">
  <front>
    <title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
    <author initials="S." surname="Bradner" fullname="Scott Bradner">
    <organization>Harvard University</organization>
    <address>
    <postal>
    <street>1350 Mass. Ave.</street>
    <street>Cambridge</street>
    <street>MA 02138</street></postal>
    <phone>- +1 617 495 3864</phone>
    <email>-</email></address></author>
    <date month="March" year="1997"/>
    <area>General</area>
    <keyword>keyword</keyword>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
</reference>

<reference anchor="RFC2396">
  <front>
    <title abbrev="URI Generic Syntax">Uniform Resource Identifiers (URI): Generic Syntax</title>
    <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
    <organization>World Wide Web Consortium</organization>
    <address>
    <postal>
    <street>MIT Laboratory for Computer Science, NE43-356</street>
    <street>545 Technology Square</street>
    <city>Cambridge</city>
    <region>MA</region>
    <code>02139</code></postal>
    <facsimile>+1(617)258-8682</facsimile>
    <email>timbl@w3.org</email></address></author>
    <author initials="R.T." surname="Fielding" fullname="Roy T. Fielding">
    <organization>Department of Information and Computer Science</organization>
    <address>
    <postal>
    <street>University of California, Irvine</street>
    <city>Irvine</city>
    <region>CA</region>
    <code>92697-3425</code></postal>
    <facsimile>+1(949)824-1715</facsimile>
    <email>fielding@ics.uci.edu</email></address></author>
    <author initials="L." surname="Masinter" fullname="Larry Masinter">
    <organization>Xerox PARC</organization>
    <address>
    <postal>
    <street>3333 Coyote Hill Road</street>
    <city>Palo Alto</city>
    <region>CA</region>
    <code>94034</code></postal>
    <facsimile>+1(415)812-4333</facsimile>
    <email>masinter@parc.xerox.com</email></address></author>
    <date month="August" year="1998"/>
    <area>Applications</area>
    <keyword>uniform resource</keyword>
    <keyword>URI</keyword>
  </front>
  <seriesInfo name="RFC" value="2396"/>
</reference>

<reference anchor="RFC2518">
  <front>
    <title>HTTP Extensions for Distributed Authoring -- WEBDAV</title>
    <author initials="Y." surname="Goland" fullname="Y. Goland">
      <organization>Microsoft Corporation</organization>
      <address><email>yarong@microsoft.com</email></address>
    </author>
    <author initials="E." surname="Whitehead" fullname="E. J. Whitehead, Jr.">
      <organization abbrev="UC Irvine">Dept. Of Information and Computer Science, University of California, Irvine</organization>
    	<address><email>ejw@ics.uci.edu</email></address>
    </author>
    <author initials="A." surname="Faizi" fullname="A. Faizi">
      <organization abbrev="Netscape">Netscape</organization>
      <address><email>asad@netscape.com</email></address>
    </author>
    <author initials="S.R." surname="Carter" fullname="S. R. Carter">
      <organization abbrev="Novell">Novell</organization>
      <address><email>srcarter@novell.com</email></address>
    </author>
    <author initials="D." surname="Jensen" fullname="D. Jensen">
      <organization abbrev="Novell">Novell</organization>
      <address><email>dcjensen@novell.com</email></address>
    </author>
    <date month="February" year="1999"/>
  </front>
  <seriesInfo name="RFC" value="2518"/>
</reference>

<reference anchor="RFC2616">
  <front>
    <title>Hypertext Transfer Protocol -- HTTP/1.1</title>
    <author initials="R." surname="Fielding" fullname="R. Fielding">
      <organization>University of California, Irvine</organization>
      <address><email>fielding@ics.uci.edu</email></address>
    </author>
    <author initials="J." surname="Gettys" fullname="J. Gettys">
      <organization>W3C</organization>
      <address><email>jg@w3.org</email></address>
    </author>
    <author initials="J." surname="Mogul" fullname="J. Mogul">
      <organization>Compaq Computer Corporation</organization>
      <address><email>mogul@wrl.dec.com</email></address>
    </author>
    <author initials="H." surname="Frystyk" fullname="H. Frystyk">
      <organization>MIT Laboratory for Computer Science</organization>
      <address><email>frystyk@w3.org</email></address>
    </author>
    <author initials="L." surname="Masinter" fullname="L. Masinter">
      <organization>Xerox Corporation</organization>
      <address><email>masinter@parc.xerox.com</email></address>
    </author>
    <author initials="P." surname="Leach" fullname="P. Leach">
      <organization>Microsoft Corporation</organization>
      <address><email>paulle@microsoft.com</email></address>
    </author>
    <author initials="T." surname="Berners-Lee" fullname="T. Berners-Lee">
      <organization>W3C</organization>
      <address><email>timbl@w3.org</email></address>
    </author>
    <date month="June" year="1999"/>
  </front>
  <seriesInfo name="RFC" value="2616"/>
</reference>

<reference anchor="XML" target="http://www.w3.org/TR/2000/REC-xml-20001006">
  <front>
    <title>Extensible Markup Language (XML) 1.0 (2nd ed)</title>
    <author initials="T." surname="Bray" fullname="Tim Bray">
      <organization>Textuality and Netscape</organization>
      <address>
        <email>tbray@textuality.com</email>
      </address>
    </author>
    <author initials="J." surname="Paoli" fullname="Jean Paoli">
      <organization>Microsoft</organization>
      <address>
        <email>jeanpa@microsoft.com</email>
      </address>
    </author>
    <author initials="C.M." surname="Sperberg-McQueen" fullname="C. M. Sperberg-McQueen">
      <organization>University of Illinois at Chicago and Text Encoding Initiative</organization>
      <address>
        <email>cmsmcq@uic.edu</email>
      </address>
    </author>
    <author initials="E." surname="Maler" fullname="Eve Maler">
      <organization>Sun Microsystems</organization>
      <address>
        <email>eve.maler@east.sun.com</email>
      </address>
    </author>
    <date day="6" month="October" year="2000"/>
  </front>
  <seriesInfo name="W3C" value="REC-xml"/>
</reference>
</references>

<section title="Changes to the WebDAV Document Type Definition">
<figure><artwork>
&lt;!-- XML Elements from Section 13 --&gt;
&lt;!ELEMENT redirectref EMPTY &gt;
&lt;!--  --&gt;Property Elements from Section 12 --&gt;
&lt;!ELEMENT reftarget href&gt;
&lt;!ELEMENT location href&gt;
&lt;!-- Changes to the DAV:response Element from Section 14 --&gt;
&lt;!ELEMENT response (href, ((href*, status, prop?) | (propstat+)), 
responsedescription?) &gt;
</artwork></figure>
</section>

<section title="Change Log (to be removed by RFC Editor before publication)">

<section title="Since draft-ietf-webdav-redirectref-protocol-02">
<t>
  Julian Reschke takes editorial role (added to authors list). Cleanup
  XML indentation. Start adding all unresolved last call issues. Update
  some author's contact information. Update references, split into "normative"
  and "informational". Remove non-RFC2616 headers ("Public") from examples.
  Fixed width problems in artwork. Start resolving editorial issues.
</t>
</section>

<section title="Since draft-ietf-webdav-redirectref-protocol-03">
<t>
  Added Joe Orton and Juergen Reuter to Acknowledgements section. Close more
  editorial issues. Remove dependencies on BIND spec.
</t>
</section>

<section title="Since draft-ietf-webdav-redirectref-protocol-04">
<t>
  More editorial fixes. Clarify that MKRESOURCE can only be used to create
  redirect references (switch to new method in a future draft). Clarify
  that redirect references do not have bodies.
</t>
</section>

<ed:ins title="2003-10-20, julian.reschke@greenbytes.de">
<section title="Since draft-ietf-webdav-redirectref-protocol-05">
<t>
  Close (accept) issue "lc-79-accesscontrol". Add issue "rfc2606-compliance".
  Close issues "lc-50-blindredirect", "lc-71-relative", "lc-74-terminology".
  Update contact info for Geoff Clemm. Moved some of the original authors names to
  new Contributors section.
  Add and close issue "9-MKRESOURCE-vs-relative-URI".
  <!-- Oct 09 -->
  Close issue "lc-72-trailingslash".
  <!-- Oct 13 -->
  Close issue "lc-60-ex". Update issue "lc-85-301" with proposal.
  Close issue "lc-06-reftarget-relative" (9-MKRESOURCE-vs-relative-URI was
  a duplicate of this one). Also remove section 9.1 (example for MKRESOURCE
  vs relative URIs).
  <!-- Oct 17 -->
  Add and resolve issue "11.2-apply-to-redirect-ref-syntax" (header now has
  values "T" and "F"). Also some cleanup for "rfc2606-compliance".
  <!-- Oct 20 -->
  Typo fixes. Add and resolve "15.1-options-response".
</t>
</section>
</ed:ins>

</section>


</back>
</rfc>