Открыть сервис

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 используется как основной способ доступа к файлам.

Источники

  1. RFC 4918 — HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV). IETF, 2007.
  2. RFC 2518 — HTTP Extensions for Distributed Authoring — WEBDAV. IETF, 1999 (устаревший).
  3. RFC 3253 — Versioning Extensions to WebDAV (DeltaV). IETF, 2002.
  4. Документация Apache HTTP Server — модуль mod_dav.
  5. Документация Nginx — модуль ngx_http_dav_module.
  6. Документация Microsoft IIS — настройка WebDAV.
  7. Документация ownCloud/Nextcloud — протокол WebDAV.
  8. «WebDAV: Next Generation Collaborative Web Authoring» — книга Л. Б. Уайта (L. B. White), 2004.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →