424 Failed Dependency

  • You are here: Free PHP » Uncategorized » 424 Failed Dependency

The 424 Failed Dependency status-code does not appear in the base HTTP specification, but is part of WebDAV specification, which is an extension to HTTP.

WebDAV has a concept of ‘properties’ that are associated with resources. They are a little bit like extended file attributes, which is a feature on many modern filesystems

WebDAV uses the PROPPATCH HTTP method to update these. Many can be updated in 1 single HTTP request.

Generally HTTP requests are ‘all or nothing’. In other words, they should either completely succeed or completely fail.

WebDAV uses HTTP status codes in response bodies to indicate if a property update was successful or not. If a PROPPATCH was issued, and one property update failed (with for example 403 Forbidden) then automatically every other property update will also fail with 424 Failed Dependency.

424 Failed Dependency will therefore never appear on a HTTP response status line, and only ever in HTTP response bodies that have a 207 Multi-Status response code.

Example

PROPPATCH /folder HTTP/1.1
Host: www.example.org
Content-Type: application/xml

<?xml version="1.0"?>
<d:propertyupdate xmlns:d="DAV:">
 <d:set>
   <d:prop>
      <d:getcontentlength>1</d:getcontentlength>
      <d:displayname>Evert</d:displayname>
   </d:prop>
 </d:set>
</d:propertyupdate>

Response:

HTTP/1.1 207 Multi-Status
Content-Type: application/xml
Content-Length: xxxx

<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:">
 <d:response>
   <d:href>/folders</d:href>
   <d:propstat>
     <d:prop><d:displayname/></d:prop>
     <d:status>HTTP/1.1 424 Failed Dependency</d:status>
   </d:propstat>
   <d:propstat>
     <d:prop><d:getcontentlength /></d:prop>
     <d:status>HTTP/1.1 403 Forbidden</d:status>
   </d:propstat>
 </d:response>
</d:multistatus>

The above response indicates that getcontentlength was not allowed to be updated, and this caused the update to displayname to fail with 424.

Usage on the web

This HTTP status code should probably not be used outside of WebDAV

References

Powered by Gewgley