WebDAV

WebDAV (Web Distributed Authoring and Versioning) или просто DAV — набор расширений и дополнений к протоколу HTTP, поддерживающих совместную работу пользователей над редактированием файлов и управление файлами на удаленных веб-серверах. В качестве миссии рабочей группы по созданию DAV было заявлено: "разработка дополнений к протоколу HTTP, обеспечивающих свободное взаимодействие инструментов распределённой разработки веб-страниц, в соответствии с потребностями работы пользователей". Однако в процессе эксплуатации DAV нашёл себе ряд других применений, выходящих за первоначально принятые рамки коллективной работы над веб-документами. Сегодня DAV применяется в качестве сетевой файловой системы, эффективной для работы в Интернете и способной обрабатывать файлы целиком, поддерживая хорошую производительность работы в условиях окружения с высокой временной задержкой передачи информации. Кроме того, DAV широко применяется в качестве протокола для доступа через Интернет и манипулирования содержимым систем документооборота (document management system). Ещё одной важной целью DAV является поддержка работы распределённых команд по разработке программного обеспечения. В качестве резюме задачу создания DAV можно указать так: на волне повсеместного использования HTTP в качестве стандартного уровня доступа к широкому кругу хранилищ информации расширить его возможности средствами записи информации (HTTP/storage/emulated/0/.sstmp — доступ на чтение, DAV — доступ на запись).

Основные возможности 
 Блокировка — долгосрочные блокировки на запись документа предотвращают потерю информации при одновременном редактировании документа несколькими пользователями. Учитывая характер Интернет-соединений пользователей, длительность блокировки в DAV не зависит от индивидуального сетевого соединения.
 Свойства — произвольные метаданные могут храниться в качестве свойств, описанных на языке XML. В качестве примера можно привести список авторов документа или его краткую аннотацию. Протокол DAV предоставляет средства для создания, редактирования и удаления свойств. Протокол DASL или DAV Searching and Locating предоставляет средства поиска и локализации веб-ресурсов на основе значения их свойств.
 Именованные области (Namespace) — раздел DAV, поддерживающий переименование и перемещение веб-ресурсов. Механизм реализован в протоколе с помощью коллекций, выполняющих функцию, аналогичную папкам в файловой системе.

Особенности 
  Выполнение основных файловых операций над объектами на удаленном сервере;
 Выполнение расширенных файловых операций (блокировки, поддержка версий);
 Работа с любым типом объектов (не только файлы);
 Работа с метаданными;
 Поддержка одновременной работы над несколькими объектами.

Используется для совместной работы над удаленными файлами, являясь заменой для FTP и SMB.

Методы 
WebDAV расширяет HTTP следующими методами запроса:
 PROPFIND — получение свойств объекта на сервере в формате XML. Также можно получать структуру репозитория (дерево каталогов);
 PROPPATCH — изменение свойств за одну транзакцию;
 MKCOL — создать коллекцию объектов (каталог в случае доступа к файлам);
 COPY — копирование из одного URI в другой;
 MOVE — перемещение из одного URI в другой;
 LOCK — поставить блокировку на объекте. WebDAV поддерживает эксклюзивные и общие (shared) блокировки;
 UNLOCK — снять блокировку с ресурса.

Стандарты 
Работа WebDAV регулируется следующими стандартами:
 RFC 2291 «Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web»;
 RFC 4918 «HTTP Extensions for Distributed Authoring — WEBDAV»;
 RFC 3648 «Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol»;
 RFC 3744 «Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol».

Интересные факты 
 macOS от Apple использовала WebDAV для обеспечения службы iDisk.
 Для подключения WebDAV-сервисов в Linux можно использовать утилиту davfs2. 
 Microsoft SharePoint использует WebDAV.
 WebDAV встроен в Windows. Служба называется WebClient, а в IE — Web Folders. Каталоги можно подключать как обычные сетевые расположения.
 OpenText Content Server предоставляет удаленный доступ к содержимому системы управления документами с помощью установки модуля Content Server WebDAV

WebDAV-серверы 
 A2 HTTP Server
 Apache HTTP Server
 lighttpd
Mailfence
 Microsoft IIS
 Nginx
 OpenText ContentServer
 
 yaws
 ownCloud
 Nextcloud

WebDAV-клиенты 
 BitKinex — для Windows. Бесплатный.
 Cadaver — интерактивный консольный клиент для GNU/Linux. 
 Caja — файловый менеджер в MATE, форк Nautilus. 
 CarotDAV — для Windows. Написан на .NET. Бесплатный.
 Cyberduck — для macOS и Windows.
 Dolphin — файловый менеджер в KDE.
 ES File Explorer  — файловый менеджер для Android.
 Nautilus — файловый менеджер в GNOME.
 NetDrive — для Windows. При подключении к серверу создает локальный диск. Имеет триал версию на 7 дней.
 RaiDrive — для Windows. Подключение удалённых хранилищ в качестве сетевых дисков.
 WinSCP — графический клиент для Windows.
 WebDrive — для Windows и Mac. Клиент доступа файл, который сопоставляется FTP, SFTP и WebDAV, Облако серверов буквы диска или устройства.
 плагин для Total Commander (WebDAV ). Бесплатный.
 FAR Manager через плагин NetBox (входит в дистрибутив). Бесплатный.

Примечания

Ссылки 
 WebDAV.org
 RFC 3253
 Модуль ngx_http_dav_module для веб-сервера Nginx 
 Модуль ngx_http_dav_ext_module для веб-сервера Nginx, реализующий листинг файлов и каталогов 
 Проблемы клиента Microsoft WebDav MiniRedirector 

Сетевые протоколы
Интернет-протоколы
Стандарты W3C