method
Click on the red underlined text to get to the source
... allows clients to perform remote web content authoring operations.
This extension provides a coherent set of methods, headers, request
entity ...
... abstractions manipulated by the WebDAV-specific HTTP methods
described in section 8, "HTTP Methods ...
...
In HTTP/1.1, method parameter information was exclusively encoded in
HTTP headers. Unlike HTTP/1.1 ...
... HTTP headers. Unlike HTTP/1.1, WebDAV encodes method parameter
information either in an Extensible Markup Language (XML ...
... HTTP header. The use of XML to encode
method parameters was motivated by the ability to add extra XML
elements to existing structures, providing extensibility; and by
XML ...
... XML is used in WebDAV to
encode the responses from methods, providing the extensibility and
internationalization advantages of XML ...
... describe most error conditions encountered by WebDAV methods, there
are some errors that do not fall neatly into the existing categories.
New status codes ...
... New status codes developed for the WebDAV methods are defined in
section 10. Since some WebDAV methods ...
... methods are defined in
section 10. Since some WebDAV methods may operate over many
resources, the Multi-Status response has been introduced to return
status information for multiple resources. The Multi-Status response
...
... any HTTP/1.1 or DAV method except for PUT, MKCOL, OPTIONS and LOCK.
A NULL resource MUST NOT appear as a member of its parent collection.
...
... namespace be consistent. However, certain WebDAV methods are
prohibited from producing results that cause namespace
...
... URI ending with the "/". For example, if a client invokes a
method on
http://foo.bar/blah (no trailing slash), the resource
http://foo.bar/blah/ ...
... the resource may comply with all the rules set out in this
specification regarding how a collection is to behave without
necessarily supporting all methods that a WebDAV compliant resource
is required to support. In such a case the resource may return the
...
...
This document specifies the MKCOL method to create new collection
resources, rather than using the existing HTTP/1.1 ...
... create new collection
resources, rather than using the existing HTTP/1.1 PUT or POST
method, for the following reasons:
...
...
In HTTP/1.1, the PUT method is defined to store the request body at
the location specified by the Request-URI. While a description
...
...
For many resources, the entity returned by a GET method exactly
matches the persistent state of the resource, for example, a GIF ...
... create a single UUID and then add
extension characters. If the second method is selected then the
program generating the extensions MUST guarantee that the same
extension will never be used twice with the associated UUID ...
...
Any DAV compliant resource that supports the LOCK method MUST support
the supportedlock property.
...
...
Any DAV compliant resource that supports the LOCK method MUST support
the lockdiscovery property.
...
... Methods Restricted by Write Locks ...
... PROPPATCH, LOCK, UNLOCK, MOVE,
DELETE, or MKCOL on the locked resource. All other current methods,
GET in particular, function independently of the lock.
...
...
Note, however, that as new methods are created it will be necessary
to specify how they interact with a write lock.
...
...
A write locked null resource, referred to as a lock-null resource,
MUST respond with a 404 (Not Found) or 405 (Method Not Allowed) to
any HTTP/1.1 or DAV ...
... any HTTP/1.1 or DAV methods except for PUT, MKCOL, OPTIONS, PROPFIND,
LOCK, and UNLOCK. A lock-null resource MUST appear as a member of
...
... DAV properties. Most of these
properties, such as all the get* properties, will have no value as a
lock-null resource does not support the GET method. Lock-Null
resources MUST have defined values for lockdiscovery and
supportedlock properties.
...
...
Until a method such as PUT or MKCOL is successfully executed on the
lock-null resource the resource MUST stay in the lock-null state.
...
...
If the resource is unlocked, for any reason, without a PUT, MKCOL, or
similar method having been successfully executed upon it then the
resource MUST return to the null state.
...
... principal in the If header for all locked resources
that a method may interact with or the method MUST fail. For
example, if a resource is to be moved and both the source and
...
... header for all locked resources
that a method may interact with or the method MUST fail. For
example, if a resource is to be moved and both the source and
destination ...
...
A COPY method invocation MUST NOT duplicate any write locks active on
the source. However, as previously noted, if the COPY copies the
...
...
However, a client may submit a LOCK method with an If header but
without a body. This form of LOCK MUST only be used to "refresh ...
... XML in a response
then it MUST NOT assume anything about the outcome of the executed
method and SHOULD treat the server as malfunctioning.
...
...
The PROPFIND method retrieves properties defined on the resource
identified by the Request-URI, if the resource does not have any
...
... URIs. All DAV compliant resources MUST
support the PROPFIND method and the propfind XML element (section
12.14) along with all XML elements ...
... URIs. DAV compliant servers MUST support the "0", "1" and
"infinity" behaviors. By default, the PROPFIND method without a Depth
header MUST act as if a "Depth: infinity" header ...
... client may submit a propfind XML element in the body of the request
method describing what information is being requested. It is
possible to request particular property values, all property values,
or a list of the names of the resource's properties. A client ...
...
The results of this method SHOULD NOT be cached.
...
...
The PROPPATCH method processes instructions specified in the request
body to set and/or remove properties defined on the resource
...
...
All DAV compliant resources MUST support the PROPPATCH method and
MUST process instructions that are specified using the
propertyupdate, set, and remove ...
... XML elements of the DAV schema.
Execution of the directives in this method is, of course, subject to
access control ...
...
The request message body of a PROPPATCH method MUST contain the
propertyupdate XML element. Instruction processing MUST occur in the
...
... The following are examples of response codes one would expect to be
used in a 207 (Multi-Status) response for this method. Note,
however, that unless explicitly prohibited any 2/3/4/5xx series
response code ...
... MKCOL Method ...
... Request-URI a member of its parent collection, unless
the Request-URI is "/". If no such ancestor exists, the method MUST
fail. When the MKCOL operation creates a new collection resource,
...
... fail. When the MKCOL operation creates a new collection resource,
all ancestors MUST already exist, or the method MUST fail with a 409
(Conflict) status code. For example, if a request to create ...
... 405 (Method Not Allowed) ...
...
If the DELETE method is issued to a non-collection resource whose
URIs are an internal member of one or more collections, then during
...
...
The DELETE method on a collection MUST act as if a "Depth: infinity"
header was used on it. A client ...
... deleted. Even though a Depth header has not been
included, a depth of infinity is assumed because the method is on a
collection.
...
... As defined in the HTTP/1.1 specification [RFC2068], the "PUT method
requests that the enclosed entity be stored under the supplied
...
... 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.
...
... 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 ...
... COPY Method ...
... 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
...
... 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
...
...
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 ...
... 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
...
... 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.
...
...
If an error in executing the COPY method occurs with a resource other
than the resource identified in the Request-URI then the response
...
... The 424 (Failed Dependency) status code SHOULD NOT be returned in the
207 (Multi-Status) response from a COPY method. These responses can
be safely omitted because the client will know that the progeny of a
...
... status codes
SHOULD NOT be returned as values in 207 (Multi-Status) responses from
COPY methods. They, too, can be safely omitted because they are the
default success codes.
...
... MOVE Method ...
... Destination header MUST be present on all MOVE
methods and MUST follow all COPY requirements for the COPY part of
the MOVE method ...
... methods and MUST follow all COPY requirements for the COPY part of
the MOVE method. All DAV compliant resources MUST support the MOVE
method ...
... method. All DAV compliant resources MUST support the MOVE
method. However, support for the MOVE method does not guarantee the
ability to move a resource to a particular destination ...
... DAV compliant resources MUST support the MOVE
method. However, support for the MOVE method does not guarantee the
ability to move a resource to a particular destination.
...
...
The MOVE method on a collection MUST act as if a "Depth: infinity"
header was used on it. A client ...
... The 424 (Failed Dependency) status code SHOULD NOT be returned in the
207 (Multi-Status) response from a MOVE method. These errors can be
safely omitted because the client will know that the progeny of a
...
... resource, both source and destination, anywhere in the scope of the
method, that is locked. In this case the proper lock token was not
submitted for the destination ...
... LOCK Method ...
...
The following sections describe the LOCK method, which is used to
take out a lock of any access type. These sections on the LOCK
...
... take out a lock of any access type. These sections on the LOCK
method describe only those semantics that are specific to the LOCK
method ...
... method describe only those semantics that are specific to the LOCK
method and are independent of the access type of the lock being
requested.
...
...
Any resource which supports the LOCK method MUST, at minimum, support
the XML request and response ...
... XML element on the Request-URI. Lock method requests SHOULD have a
XML request body which contains an owner XML element ...
...
The Depth header may be used with the LOCK method. Values other than
0 or infinity MUST NOT be used with the Depth header on a LOCK
...
... 0 or infinity MUST NOT be used with the Depth header on a LOCK
method. All resources that support the LOCK method MUST support the
Depth header ...
... header on a LOCK
method. All resources that support the LOCK method MUST support the
Depth header.
...
... Interaction with other Methods ...
...
The interaction of a LOCK with various methods is dependent upon the
lock type. However, independent of lock type, a successful DELETE of
...
... The resource is locked, so the method has been rejected.
...
... UNLOCK Method ...
...
The Depth header is used with methods executed on resources which
could potentially have internal members to indicate whether the
method ...
... methods executed on resources which
could potentially have internal members to indicate whether the
method is to be applied only to the resource ("Depth: 0"), to the
resource and its immediate children, ("Depth: 1"), or the resource
and all its progeny ("Depth: infinity").
...
...
The Depth header is only supported if a method's definition
explicitly provides for such support.
...
...
The following rules are the default behavior for any method that
supports the Depth header. A method ...
... method that
supports the Depth header. A method may override these defaults by
defining different behavior in its definition.
...
... of the header's values and may define, on a case by case basis, the
behavior of the method if a Depth header is not present. For example,
the MOVE method ...
... method if a Depth header is not present. For example,
the MOVE method only supports "Depth: infinity" and if a Depth header
is not present will act as if a "Depth: infinity" header ...
...
Clients MUST NOT rely upon methods executing on members of their
hierarchies in any particular order or on the execution being atomic
unless the particular method ...
... methods executing on members of their
hierarchies in any particular order or on the execution being atomic
unless the particular method explicitly provides such guarantees.
...
...
Upon execution, a method with a Depth header will perform as much of
its assigned task as possible and then return a response specifying
...
...
Any headers on a method that has a defined interaction with the Depth
header MUST be applied to all resources in the scope of the method ...
... method that has a defined interaction with the Depth
header MUST be applied to all resources in the scope of the method
except where alternative behavior is explicitly defined. For example,
an If-Match header ...
... an If-Match header will have its value applied against every resource
in the method's scope and will cause the method to fail if the header
...
... header will have its value applied against every resource
in the method's scope and will cause the method to fail if the header
fails to match.
...
...
If a resource, source or destination, within the scope of the method
with a Depth header is locked in such a way as to prevent the
...
... with a Depth header is locked in such a way as to prevent the
successful execution of the method, then the lock token for that
resource MUST be submitted with the request in the If request header ...
...
The Depth header only specifies the behavior of the method with
regards to internal children. If a resource does not have internal
children then the Depth header ...
... Please note, however, that it is always an error to submit a value
for the Depth header that is not allowed by the method's definition.
Thus submitting a "Depth: 1" on a COPY, even if the resource does not
have internal members, will result in a 400 (Bad Request). The method ...
... method's definition.
Thus submitting a "Depth: 1" on a COPY, even if the resource does not
have internal members, will result in a 400 (Bad Request). The method
should fail not because the resource doesn't have internal members,
but because of the illegal value in the header ...
... URI which identifies a
destination resource for methods such as COPY and MOVE, which take
two URIs as parameters. Note that the absoluteURI production is
...
... tag-list productions are used then one only
needs to match the state of the resource for the method to be allowed
to continue.
...
... applied to multiple resources then the No-tag-list production MUST be
applied to each resource the method is applied to.
...
... The previous header would require that any resources within the scope
of the method must either be locked with the specified lock token and
in the state ...
... header is applied to a particular resource, the Tagged-
list productions MUST be searched to determine if any of the listed
resources match the operand resource(s) for the current method. If
none of the resource productions match the current resource then the
header ...
...
http://www.foo.bar/resource1 is being copied to
http://www.foo.bar/resource2. When the method is first applied to
http://www.foo.bar/resource1, resource1 must be in the state ...
... That is the only success condition since the resource
http://www.bar.bar/random never has the method applied to it (the
only other resource listed in the If header) and
...
... The Lock-Token request header is used with the UNLOCK method to
identify the lock to be removed. The lock token ...
... The Lock-Token response header is used with the LOCK method to
indicate the lock token created ...
... If a COPY or MOVE is not performed due to the value of the Overwrite
header, the method MUST fail with a 412 (Precondition Failed) status
code.
...
... URIs listed in the header are source resources which have been
affected by the outstanding method. The status code indicates the
resolution of the method ...
... method. The status code indicates the
resolution of the method on the identified resource. So, for
example, if a MOVE method on a collection is outstanding and a 102
...
... resolution of the method on the identified resource. So, for
example, if a MOVE method on a collection is outstanding and a 102
(Processing) response with a Status-URI response header ...
... The timeout counter SHOULD be restarted any time an owner of the lock
sends a method to any member of the lock, including unsupported
methods, or methods ...
... sends a method to any member of the lock, including unsupported
methods, or methods which are unsuccessful. However the lock MUST be
refreshed if a refresh ...
... method to any member of the lock, including unsupported
methods, or methods which are unsuccessful. However the lock MUST be
refreshed if a refresh LOCK method ...
... methods which are unsuccessful. However the lock MUST be
refreshed if a refresh LOCK method is successfully received.
...
... If the timeout expires then the lock may be lost. Specifically, if
the server wishes to harvest the lock upon time-out, the server
SHOULD act as if an UNLOCK method was executed by the server on the
resource using the lock token ...
... status code SHOULD only be sent
when the server has a reasonable expectation that the request will
take significant time to complete. As guidance, if a method is taking
longer than 20 seconds (a reasonable, but arbitrary value) to process
the server SHOULD return a 102 (Processing) response. The server MUST
...
...
Methods can potentially take a long period of time to process,
especially methods that support the Depth header ...
... Methods can potentially take a long period of time to process,
especially methods that support the Depth header. In such cases the
client ...
... The 424 (Failed Dependency) status code means that the method could
not be performed on the resource because the requested action
depended on another action and that action failed. For example, if a
...
... not be performed on the resource because the requested action
depended on another action and that action failed. For example, if a
command in a PROPPATCH method fails then, at minimum, the rest of the
commands will also fail with 424 (Failed Dependency). ...
... The 507 (Insufficient Storage) status code means the method could not
be performed on the resource because the server is unable to store
the representation needed to successfully complete the request. This
...
... which contain 200, 300, 400, and 500 series status codes generated
during the method invocation. 100 series status codes SHOULD NOT be
recorded in a response XML element ...
... The lockinfo XML element is used with a LOCK method to
specify the type of lock the client wishes to have created ...
... Holds a single response describing the effect of a
method on resource and/or its properties.
...
... not included in the request body then the server is expected to act
as defined by the default property handling behavior of the
associated method. All WebDAV compliant resources MUST support the
propertybehavior XML element ...
... keepalive element
can not be honored then the method MUST fail with a 412 (Precondition
Failed). All DAV compliant resources MUST support the keepalive ...
... DAV compliant resources MUST support the keepalive XML
element for use with the COPY and MOVE methods. ...
... XML element instructs the server that it should
use best effort to copy properties but a failure to copy a property
MUST NOT cause the method to fail. ...
... The default behavior
for a COPY or MOVE is to copy/move all properties or fail the method.
In certain circumstances, such as when a server copies a resource
over another protocol such as FTP ...
... compliant resources MUST support the omit XML element on COPY/MOVE
methods. ...
... Specifies the properties to be returned from a PROPFIND
method. Two special elements are specified for use with propfind,
allprop and propname. If prop is used inside propfind it MUST only
...
... reflect changes in any part of the state of the resource, not
necessarily just a change to the response to the GET method. For
example, a change in a property may cause the last-modified date to
change. The getlastmodified property MUST be defined on any DAV ...
... XML element and
all its children encountered while processing a DAV method that uses
XML as its command language ...
... DAV
server MUST accept DAV method requests with XML parameters
transported as either text/xml or application/xml ...
... class 1 requirements and
support the LOCK method, the supportedlock property, the
lockdiscovery property, the Time-Out response header and the Lock-
...
... Names used within 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. Since these protocol elements are not
...
...
WebDAV provides, through the PROPFIND method, a mechanism for listing
the member resources of a collection. This greatly diminishes the
effectiveness of security ...
...
The following request body for a PROPFIND method is illegal.
...
