WebDAV
WebDAV расширяет HTTP операциями для удалённой работы с файлами и коллекциями. Клиент может не только читать ресурс, но и получать свойства, создавать каталоги, копировать, перемещать и блокировать изменение.
Методы
| Method | Назначение |
|---|---|
PROPFIND | получить свойства ресурса или коллекции |
PROPPATCH | изменить свойства |
MKCOL | создать коллекцию, похожую на каталог |
COPY | скопировать ресурс |
MOVE | переместить ресурс |
LOCK | получить блокировку |
UNLOCK | освободить блокировку |
Обычные GET, PUT, DELETE и authentication-механизмы HTTP продолжают использоваться.
Depth
Заголовок Depth определяет, насколько глубоко операция обходит коллекцию:
PROPFIND /documents/ HTTP/1.1
Host: files.example.org
Depth: 1Глубокий обход большой структуры может быть дорогим, поэтому сервер вправе ограничивать его.
Ответ Multi-Status
Одна операция может затронуть несколько ресурсов с разными результатами. Для этого используется 207 Multi-Status, обычно с XML body, где у каждого ресурса свой status.
Это важное отличие от обычного предположения «один request — один status результата».
Блокировки
LOCK помогает координировать изменение ресурса несколькими клиентами. Клиент получает lock token и передаёт его при последующей записи.
Блокировка:
- имеет scope и timeout;
- может закончиться;
- не заменяет authorization;
- требует корректного восстановления после разрыва клиента.
Где встречается
- сетевое хранилище документов;
- совместное редактирование;
- подключение удалённой папки как filesystem;
- интеграция с системой управления документами.
Вопросы для собеседования
WebDAV — отдельный transport protocol?
Нет, это набор расширений HTTP.
Почему ответ может быть 207?
Потому что разные ресурсы внутри одной операции получили разные статусы.
Достаточно ли LOCK для защиты данных?
Нет. Нужны authentication, authorization, TLS и серверная проверка токена блокировки.