Сервер - статьи

       

Метод PROPPATCH


Как видно из названия метода PROPPATCH он предназначен для изменения свойств ресурсов, а именно для добавления, удаления или изменения свойств ресурса, заданного в URI.

Рассмотрим пример такого запроса: PROPPATCH /bar.html HTTP/1.1 Host: www.foo.com Content-Type: text/xml; charset="utf-8" Content-Length: xxxx <?xml version="1.0" encoding="utf-8" ?> <D:propertyupdate xmlns:D="DAV:" xmlns:Z="http://www.w3.com/standards/z39.50/"> <D:set> <D:prop> <Z:authors> <Z:Author>Jim Whitehead</Z:Author> <Z:Author>Roy Fielding</Z:Author> </Z:authors> </D:prop> </D:set> <D:remove> <D:prop> <Z:Copyright-Owner/> </D:prop> </D:remove> </D:propertyupdate>

В этом запросе клиент пытается создать для ресурса http://www.foo.com/bar.html свойство authors и удалить свойство Copyright-Owner.

А вот так выглядит ответ сервера клиенту на этот запрос: HTTP/1.1 207 Multi-Status Content-Type: text/xml; charset="utf-8" Content-Length: xxxx <?xml version="1.0" encoding="utf-8" ?> <D:multistatus xmlns:D="DAV:" xmlns:Z="http://www.w3.com/standards/z39.50"> <D:response> <D:href>http://www.foo.com/bar.html</D:href> <D:propstat> <D:prop> <Z:Authors/> </D:prop> <D:status>HTTP/1.1 424 Failed Dependency</D:status> </D:propstat> <D:propstat> <D:prop> <Z:Copyright-Owner/> </D:prop> <D:status>HTTP/1.1 409 Conflict</D:status> </D:propstat> <D:responsedescription> Copyright Owner can not be deleted or altered. </D:responsedescription> </D:response> </D:multistatus>

Сервер показывает, что свойство Copyright-Owner не может быть удалено, поэтому ни одно свойство не будет изменено.

Ответ 424 Failed Dependency показывает, что операция над свойством Authors была бы выполнена успешно, если не произошел бы конфликт с удалением Copyright-Owner.

Содержание раздела