A PUT performed on an existing resource replaces the GET response
entity of the resource. Properties defined on the resource may be
recomputed during PUT processing but are not otherwise affected. For
example, if a server recognizes the content type of the request body,
it may be able to automatically extract information that could be
profitably exposed as properties.
A PUT that would result in the creation of a resource without an
appropriately scoped parent collection MUST fail with a 409
(Conflict).
RFC 2518 WEBDAV February 1999
8.7.2 PUT for Collections
As defined in the HTTP/1.1 specification [RFC2068], the "PUT method
requests that the enclosed entity be stored under the supplied
Request-URI." Since submission of an entity representing a
collection would implicitly encode creation and deletion of
resources, this specification intentionally does not define a
transmission format for creating a collection using PUT. Instead,
the MKCOL method is defined to create collections.
When the PUT operation creates a new non-collection resource all
ancestors MUST already exist. If all ancestors do not exist, the
method MUST fail with a 409 (Conflict) status code. For example, if
resource /a/b/c/d.html is to be created and /a/b/c/ does not exist,
then the request must fail.
8.8 COPY Method
The COPY method creates a duplicate of the source resource,
identified by the Request-URI, in the destination resource,
identified by the URI in the Destination header. The Destination
header MUST be present. The exact behavior of the COPY method
depends on the type of the source resource.
All WebDAV compliant resources MUST support the COPY method.
However, support for the COPY method does not guarantee the ability
to copy a resource. For example, separate programs may control
resources on the same server. As a result, it may not be possible to
copy a resource to a location that appears to be on the same server.
8.8.1 COPY for HTTP/1.1 resources
When the source resource is not a collection the result of the COPY
method is the creation of a new resource at the destination whose
state and behavior match that of the source resource as closely as
possible. After a successful COPY invocation, all properties on the
source resource MUST be duplicated on the destination resource,
subject to modifying headers and XML elements, following the
definition for copying properties. Since the environment at the
destination may be different than at the source due to factors
outside the scope of control of the server, such as the absence of
resources required for correct operation, it may not be possible to
completely duplicate the behavior of the resource at the destination.
Subsequent alterations to the destination resource will not modify
the source resource. Subsequent alterations to the source resource
will not modify the destination resource.
RFC 2518 WEBDAV February 1999
8.8.2. COPY for Properties
The following section defines how properties on a resource are
handled during a COPY operation.
Live properties SHOULD be duplicated as identically behaving live
properties at the destination resource. If a property cannot be
copied live, then its value MUST be duplicated, octet-for-octet, in
an identically named, dead property on the destination resource
subject to the effects of the propertybehavior XML element.
The propertybehavior XML element can specify that properties are
copied on best effort, that all live properties must be successfully
copied or the method must fail, or that a specified list of live
properties must be successfully copied or the method must fail. The
propertybehavior XML element is defined in section 12.12.
8.8.3 COPY for Collections
The COPY method on a collection without a Depth header MUST act as if
a Depth header with value "infinity" was included. A client may
submit a Depth header on a COPY on a collection with a value of "0"
or "infinity". DAV compliant servers MUST support the "0" and
=21= |