RFC 2518:HTTP Extensions for Distributed Authoring...
RFC-Ref

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 ...
... methods described in section 8, "HTTP Methods for Distributed Authoring". ...
... 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 ...
... HTTP headers. Section 9 describes the new HTTP headers used with WebDAV methods. ...
... In addition to encoding method parameters, XML is used in WebDAV to ...
... XML is used in WebDAV to encode the responses from methods, providing the extensibility and internationalization advantages of XML ...
... internationalization advantages of XML for method output, as well as input. ...
... 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 ...
... DELETE functionality with an access control scheme based on methods. ...
... While the POST method is sufficiently open-ended that a "create a ...
... 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 ...


... HTTP Methods for Distributed Authoring ...
... The following new HTTP methods use XML as a request and response ...
... 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 ...
... The MKCOL method is used to create a new collection. All DAV ...
... create a new collection. All DAV compliant resources MUST support the 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) ...
... space to record the state of the resource after the execution of this method. ...
... 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 ...
... When the DELETE method has completed processing it MUST result in a consistent namespace. ...
... 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 ...
... The COPY method creates a duplicate of the source resource, identified by the Request-URI ...
... 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. ...
... The COPY method on a collection without a Depth header MUST act as if a Depth header ...
... When the COPY method has completed processing it MUST have created a consistent namespace ...
... 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. ...
... sufficient space to record the state of the resource after the execution of this method. ...
... 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 ...
... When the MOVE method has completed processing it MUST have created a consistent namespace ...
... 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 ...
... A LOCK method invocation creates the lock specified by the lockinfo XML element ...
... 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 UNLOCK method removes the lock identified by the lock token in ...
... Any DAV compliant resource which supports the LOCK method MUST support the UNLOCK method. ...
... DAV compliant resource which supports the LOCK method MUST support the 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. ...
... Methods which support the Depth header may choose not to support all of the header ...
... 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. ...
... If a method, due to the presence of a Depth or Destination header, is ...
... 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. ...
... status code to inform the client as to the status of a method. ...
... 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 ...
... Clients MUST NOT submit a Timeout request header with any method other than a LOCK method. ...
... header with any method other than a LOCK method. ...
... 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 ...
... indicate to the client that the server is still processing the method. ...
... status code means the source or destination resource of a method is locked. ...
... 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 ...


... Contains the Last-Modified header returned by a GET method without accept headers. ...
... 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 ...


... the DAV header on all responses to the OPTIONS method. ...
... class 1 requirements and support the LOCK method, the supportedlock property, the lockdiscovery property, the Time-Out response header and the Lock- ...
... and "2" in the DAV header on all responses to the OPTIONS method. ...


... 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. ...



Google
Web
RFC-Ref