Depth Header

Topic Last Modified: 2006-06-13

The WebDAV Depth header is used with methods executed on resources which could have internal members.

Depth = "Depth" ":" ("0" | "1" | "1,noroot" | "infinity" | "infinity,noroot")

Depth: 0 - The method is applied only to the resource.

Depth: 1 - The method is applied to the resource and to its immediate children.

Depth: 1,noroot - The method is applied only to resources immediately subordinate to the target Uniform Resource Identifier (URI) but the target resource itself is excluded. This value is only supported on the PROPFIND Method.

Depth: infinity - The method is applied to the resource and to all of its children.

Depth: infinity,noroot - The method is applied recursively to all resources subordinate to the target but the target resource itself is excluded. This value is supported on the DELETE Method, the BDELETE Method, the MOVE Method, the BMOVE Method, the COPY Method, the BCOPY Method, the PROPFIND Method, the LOCK Method, and the UNLOCK Method.

A method with a Depth header will perform as much of the assigned task as possible and then return a response stating what it was able do and what it failed to do.

An error will always be returned when a Depth header value is not allowed by the definition of the method.