WebDAV
WebDAV (от англ. Web Distributed Authoring and Versioning — «протокол Web-распределённого редактирования и управления версиями») — это расширение протокола HTTP, предназначенное для коллективного редактирования файлов и управления файлами на удалённом веб-сервере. Протокол позволяет пользователям не только читать, но и записывать, перемещать, копировать, удалять файлы, а также управлять их свойствами и блокировками, работая с сервером как с сетевым диском или файловым хранилищем. WebDAV определён в стандарте RFC 4918 (изначально RFC 2518), разработанном рабочей группой IETF (Internet Engineering Task Force).
История
Протокол WebDAV был разработан в конце 1990-х годов для решения проблем, связанных с совместной работой над документами в вебе. Изначально HTTP был ориентирован на чтение данных (GET-запросы) и простую отправку форм (POST). Для полноценного редактирования файлов на сервере требовались новые методы. Первая версия спецификации была опубликована в феврале 1999 года как RFC 2518. В 2007 году она была заменена обновлённой версией RFC 4918, которая уточнила и расширила функциональность протокола. Значительный вклад в разработку внесли такие компании, как Microsoft (использовавшая протокол в IIS и Office), Adobe (в продуктах для управления контентом) и IBM (в системах Lotus Notes). Протокол активно развивался в начале 2000-х годов, став основой для ряда корпоративных систем управления документами (DMS) и облачных хранилищ.
Основные методы и расширения HTTP
WebDAV добавляет к стандартным HTTP-методам (GET, POST, PUT, DELETE) несколько новых, которые позволяют выполнять операции с файлами и каталогами:
- PROPFIND — получение свойств ресурса (например, размер файла, дата создания, тип) и содержимого каталога (список файлов и папок). Это аналог команды
lsилиdir. - PROPPATCH — изменение свойств ресурса (например, установка пользовательских метаданных или атрибутов, таких как «автор» или «тема»).
- MKCOL — создание коллекции (каталога) на сервере.
- COPY — копирование файла или каталога в другое место на сервере.
- MOVE — перемещение или переименование файла или каталога.
- LOCK — блокировка ресурса для предотвращения одновременного редактирования несколькими пользователями (исключительная или разделяемая блокировка).
- UNLOCK — снятие блокировки.
Эти методы работают поверх стандартного HTTP, используя XML для передачи данных в теле запросов и ответов (например, в PROPFIND и PROPPATCH). Протокол также поддерживает управление версиями (через расширение DeltaV, описанное в RFC 3253), хотя эта функция реализована не во всех клиентах и серверах.
Архитектура и принцип работы
WebDAV работает по клиент-серверной архитектуре. Клиент (например, файловый менеджер, текстовый редактор или специализированное приложение) отправляет HTTP-запросы на сервер, который поддерживает протокол WebDAV. Сервер обрабатывает запросы и возвращает ответы в формате XML.
Ключевые элементы архитектуры:
- Ресурсы — файлы (например, документы, изображения) и коллекции (каталоги). Каждый ресурс имеет URI (Uniform Resource Identifier), по которому к нему обращаются.
- Свойства (properties) — метаданные, связанные с ресурсом. Стандартные свойства включают дату создания, размер, тип MIME. Пользовательские свойства могут быть добавлены через PROPPATCH.
- Блокировки (locks) — механизм, предотвращающий конфликты при одновременном редактировании. Различают исключительные блокировки (только один пользователь может редактировать) и разделяемые (несколько пользователей могут редактировать, но блокировка предотвращает удаление или переименование).
- Коллекции — аналог каталогов в файловой системе. Они могут содержать другие коллекции и ресурсы.
При подключении к WebDAV-серверу клиент сначала отправляет PROPFIND-запрос на корневой URI, чтобы получить список доступных файлов и папок. Затем, для открытия файла, клиент отправляет GET-запрос, а для сохранения — PUT-запрос. Для создания новой папки используется MKCOL, для копирования — COPY, для перемещения — MOVE.
Применение
WebDAV широко используется в различных областях, связанных с управлением документами и файлами:
- Корпоративные системы управления документами (DMS): Microsoft SharePoint, IBM Lotus Notes (до перехода на другие протоколы), Alfresco, Nextcloud, ownCloud. WebDAV позволяет пользователям работать с документами напрямую из проводника операционной системы или офисных приложений.
- Облачные хранилища: Многие облачные сервисы, такие как Яндекс.Диск, Box, Dropbox (в ранних версиях), предоставляют доступ к файлам через WebDAV. В России Яндекс.Диск является одним из наиболее популярных сервисов, поддерживающих этот протокол.
- Веб-серверы: Apache HTTP Server (с модулем
mod_dav), Nginx (с модулемngx_http_dav_module), Microsoft IIS (встроенная поддержка) позволяют настраивать WebDAV для удалённого управления контентом сайтов. - Интеграция с офисными приложениями: Microsoft Office (Word, Excel, PowerPoint) поддерживает открытие и сохранение документов напрямую на WebDAV-сервер через функцию «Открыть с сервера» или «Сохранить на сервер». Аналогичная поддержка есть в LibreOffice и OpenOffice.
- Синхронизация файлов: Некоторые программы для синхронизации файлов (например, ownCloud Desktop Client, Nextcloud Desktop Client) используют WebDAV для обмена данными между компьютером и сервером.
- Разработка и управление веб-сайтами: WebDAV часто используется для загрузки и редактирования файлов сайтов на серверах, поддерживающих протокол (например, в системах управления контентом, таких как WordPress, через плагины).
Примеры использования в России
В России WebDAV активно используется в корпоративной среде, особенно в государственных учреждениях и крупных компаниях, где развёрнуты системы на базе 1С:Документооборот, Directum, TESSA и других. Эти системы часто предоставляют WebDAV-доступ для интеграции с офисными пакетами. Также протокол популярен среди пользователей Яндекс.Диска для подключения к хранилищу как к сетевому диску в Windows или macOS.
Клиенты и серверы
Популярные серверы
- Apache HTTP Server — модуль
mod_dav(включён в стандартную поставку, но требует настройки). - Nginx — модуль
ngx_http_dav_module(ограниченная поддержка, не включает блокировки и PROPFIND для каталогов). - Microsoft IIS — встроенная поддержка WebDAV (требует включения роли).
- ownCloud / Nextcloud — популярные платформы для создания частных облачных хранилищ, использующие WebDAV как основной протокол доступа.
- SabreDAV — PHP-библиотека для создания WebDAV-серверов, часто используется в CMS и фреймворках.
- Lighttpd — модуль
mod_webdav.
Популярные клиенты
- Проводник Windows — встроенная поддержка WebDAV через «Подключить сетевой диск» (используется протокол WebClient).
- Finder (macOS) — встроенная поддержка WebDAV через «Подключение к серверу».
- Linux (GNOME Files, Dolphin, Thunar) — поддержка через протокол
dav://иdavs://. - Cyberduck — кроссплатформенный графический клиент для FTP, SFTP, WebDAV и облачных хранилищ.
- WinSCP — популярный клиент для Windows, поддерживающий WebDAV.
- cURL / wget — консольные утилиты, позволяющие работать с WebDAV через HTTP-запросы.
- Microsoft Office — встроенная поддержка открытия и сохранения документов на WebDAV-сервере.
Безопасность
WebDAV может работать как по незащищённому HTTP, так и по защищённому HTTPS (WebDAV over SSL/TLS, часто обозначается как WebDAVS). Использование HTTPS настоятельно рекомендуется, так как протокол передаёт учётные данные (логин и пароль) в открытом виде при использовании базовой аутентификации. Для аутентификации обычно применяются:
- Базовая аутентификация (Basic Auth) — передача логина и пароля в заголовке HTTP (только с HTTPS).
- Дайджест-аутентификация (Digest Auth) — более безопасный метод, но реже поддерживается.
- Аутентификация через NTLM/Kerberos — в корпоративных средах (Microsoft IIS, SharePoint).
- OAuth 2.0 — в современных облачных сервисах (например, Яндекс.Диск).
Критика и ограничения
Несмотря на широкое распространение, WebDAV имеет ряд недостатков:
- Сложность настройки — особенно на серверах Apache и Nginx, где требуется правильная конфигурация модулей и прав доступа.
- Проблемы с совместимостью — разные реализации серверов и клиентов могут иметь различия в поддержке расширений (например, блокировки, управление версиями). Некоторые клиенты (например, старые версии Windows) могут работать некорректно с определёнными серверами.
- Производительность — использование XML для передачи данных увеличивает объём трафика по сравнению с более современными протоколами, такими как SMB или NFS.
- Безопасность — при использовании HTTP без шифрования данные и учётные данные передаются в открытом виде. Также возможны атаки типа «человек посередине» (MITM).
- Ограниченная поддержка в современных веб-приложениях — многие новые облачные сервисы предпочитают RESTful API (например, Google Drive API, Dropbox API) вместо WebDAV.
Альтернативы
Существуют другие протоколы и технологии для удалённого доступа к файлам:
- FTP/SFTP/FTPS — классические протоколы передачи файлов, менее удобны для коллективного редактирования.
- SMB/CIFS — протокол сетевых папок Windows, широко используется в локальных сетях, но менее подходит для работы через интернет.
- NFS — протокол для Unix-подобных систем, ориентирован на локальные сети.
- RESTful API (например, Google Drive API, Dropbox API, Яндекс.Диск REST API) — современные интерфейсы для облачных хранилищ, предоставляющие более гибкие возможности, но требующие разработки клиентского кода.
- WebSocket — протокол для двусторонней связи, иногда используется для синхронизации файлов в реальном времени.
Интересные факты
- Название протокола происходит от слов «Web Distributed Authoring and Versioning» (распределённое редактирование и управление версиями в вебе), хотя управление версиями (DeltaV) является отдельным расширением и реализовано не во всех системах.
- WebDAV стал основой для протокола CalDAV (для работы с календарями) и CardDAV (для работы с контактными данными), которые широко используются в сервисах синхронизации (например, iCloud, Nextcloud).
- В 2000-х годах Microsoft активно продвигала WebDAV как часть своей стратегии «Windows SharePoint Services», что способствовало его распространению в корпоративной среде.
- Протокол поддерживается в операционной системе KolibriOS — это одна из немногих современных ОС, где WebDAV используется как основной способ доступа к файлам.
Источники
- RFC 4918 — HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). IETF, 2007.
- RFC 2518 — HTTP Extensions for Distributed Authoring — WEBDAV. IETF, 1999 (устаревший).
- RFC 3253 — Versioning Extensions to WebDAV (DeltaV). IETF, 2002.
- Документация Apache HTTP Server — модуль mod_dav.
- Документация Nginx — модуль ngx_http_dav_module.
- Документация Microsoft IIS — настройка WebDAV.
- Документация ownCloud/Nextcloud — протокол WebDAV.
- «WebDAV: Next Generation Collaborative Web Authoring» — книга Л. Б. Уайта (L. B. White), 2004.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →