Мне любопытно посмотреть, могу ли я помочь решить некоторую путаницу вокруг webdav. Большинство стандартов IETF используют язык, который кажется очень тупым.
Обоснование за WebDAV
HTTP был разработан для извлечения веб-ресурсов или я говорю чтение. Он не предназначен для создания веб-ресурса.
Вкратце, WebDAV предоставляет полный набор возможностей удаленного доступа к документу, включая хранение файлов, управление каталогами и поддержку совместной разработки.
Think файловой системы
Самый короткий путь к пониманию WebDAV является его сходство обработки веб-ресурсов как файловой системы.
Как и в случае с папками, есть collections
как специальный веб-ресурс, который может содержать другие веб-ресурсы. Это необходимо, чтобы выделить это как особый ресурс, потому что возможности (методы, которые будут применяться разные для нормального ресурса)
Так новый метод был рожден - mkcol
Так же, как files have attributes
, web resources have meta-properties
который предоставляет некоторые подробности о сети ресурс. Сам контент веб-ресурса может быть отображен по-прежнему (HTTP уже делает это для вас).
Короче говоря, вам также необходимо иметь methods to enquire into meta-properties
- PROPFIND
, а также изменить их - PROPATCH
. Полезные нагрузки XML предназначались для поиска и извлечения этих свойств.
Подход WebDAV заключается в сохранении свойств за пределами тела файла, может быть запрошен без получения всего тела и обновлен без изменения тела.
Некоторые свойства специфичны для webdav. Они были созданы из-за необходимости. Например: Resourcetype Property
. Он был создан, чтобы узнать, используете ли вы специальный ресурс коллекции или обычный веб-ресурс, содержащийся в коллекции.
Помните, что GET (подобно HTTP) извлекает ресурс, PUT изменяет ресурс, а DELETE удаляет ресурс.
Ограничения HTTP
Чтобы понять WebDAV, вы должны понимать ограничения HTTP.
- Он не имеет гражданства, заставляя пользователя строить поиск с нуля.
- Вы не можете сказать, что это тоже все ресурсы в определенной коллекции.
- Он доступен только для чтения и не предоставляет возможности совместной работы, необходимые для создания.
- В нем отсутствует поддержка многоресурсных операций. Чтобы поддержать это, был создан
depth header
, чтобы вы могли определить, нужно ли ему работать со всеми ресурсами.
WebDAV модель ресурса
+--------+ +--------------+
|Resource|... |Property |
+--------+ +--------------+
+------++------+
|Webdav||custom|
+------++------+
+-----------+
|Dav root: /|......
+-----------+ | +--------+
|.....|Resource|
| +--------+
| +----------+
|.....|Collection|..... +----------+
' +----------+ |...|Collection|
| +----------+
| +--------+
|....|Resource|
+--------+
Это неудобный протокол. Но вы можете попробовать PEAR HTTP_WebDAV_Server или реализацию Horde (с VFS) для проникновения в переданный xmlish материал. – mario 2010-12-10 03:48:35
Спасибо Марио, я посмотрю! – Roberto 2010-12-10 07:18:36
Woah! SaberDAV может быть именно тем, что я искал, я буду изучать его, немного поиграть, и если мне удастся написать модуль, я верну свой проект, Evert. Благодаря! – Roberto 2010-12-11 04:48:59