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

Рабочая группа IETF WebDAV

WebDAV (от англ. Web Distributed Authoring and Versioning — «веб-распределённое создание и управление версиями») — это расширение протокола HTTP, определяющее набор методов и заголовков для коллективного редактирования файлов и управления документами на удалённых веб-серверах. Разработка спецификации велась под эгидой Инженерного совета Интернета (IETF) в рамках рабочей группы, официально именуемой WebDAV Working Group. Данная группа была сформирована в 1996 году и завершила свою активную деятельность в 2007 году после публикации основного набора стандартов.

История создания

Предпосылки и формирование группы

К середине 1990-х годов HTTP стал основным протоколом для передачи гипертекста, однако его возможности для управления файлами ограничивались операциями чтения (GET) и простой загрузки (POST/PUT). Для совместной работы над документами — редактирования, перемещения, блокировки и управления версиями — требовались дополнительные механизмы. Инициатива по созданию такого расширения была выдвинута Джимом Уайтхедом (Jim Whitehead) и другими участниками сообщества IETF.

В 1996 году была сформирована рабочая группа IETF WebDAV. Её целью стало создание стандарта, который бы позволял веб-браузерам и клиентским приложениям выполнять операции, характерные для файловых систем, непосредственно через HTTP. Группа работала в рамках направления «Прикладные области» (Applications Area) IETF.

Основные этапы работы

  • 1996 год: Формирование рабочей группы. Первые черновики спецификации.
  • 1998 год: Публикация черновика RFC 2291 («Requirements for a Distributed Authoring and Versioning Protocol for the World Wide Web»), определившего функциональные требования.
  • 1999 год: Выход RFC 2518 («HTTP Extensions for Distributed Authoring — WEBDAV»), который стал основой протокола. В нём были определены новые методы (PROPFIND, PROPPATCH, MKCOL, MOVE, COPY, LOCK, UNLOCK) и расширения заголовков.
  • 2002 год: Публикация RFC 3253 («Versioning Extensions to WebDAV») — расширение для управления версиями. Работа над ним велась параллельно с основным стандартом.
  • 2007 год: Публикация RFC 3744 («Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol») — расширение для контроля доступа. После этого группа завершила активную работу, передав поддержку стандарта в ведение других рабочих групп IETF (например, CalDAV и CardDAV).

Состав и методология

Рабочая группа WebDAV была открытой и включала представителей ведущих IT-компаний того времени: Microsoft, Netscape, IBM, Xerox, Sun Microsystems, а также независимых разработчиков и академических исследователей. Работа велась через почтовые рассылки и очные встречи (обычно в рамках конференций IETF). Решения принимались на основе консенсуса (rough consensus), что характерно для IETF. Ключевыми редакторами спецификаций выступили Джим Уайтхед, Юэн Голдман (E. James Whitehead, Jr.), Джон Штайн (John Stein) и другие.

Основные спецификации

Рабочая группа WebDAV разработала и опубликовала серию RFC (Request for Comments), которые составляют ядро протокола.

RFC 2518 — базовый протокол WebDAV

Этот документ (1999 год) определил фундаментальные расширения HTTP:

  • Новые методы HTTP: PROPFIND (получение свойств ресурса), PROPPATCH (изменение свойств), MKCOL (создание коллекции — аналога папки), MOVE (перемещение), COPY (копирование), LOCK (блокировка), UNLOCK (снятие блокировки).
  • Понятие коллекции: Ресурс, который может содержать другие ресурсы (аналог каталога файловой системы).
  • Свойства ресурсов: Метаданные, прикрепляемые к файлам или коллекциям (например, автор, дата создания, тип содержимого).
  • Механизм блокировок: Предотвращение одновременного редактирования одного файла несколькими пользователями. Поддерживались эксклюзивные и разделяемые блокировки.
  • Расширения DAV: Заголовок DAV, указывающий на поддержку протокола сервером.

RFC 3253 — управление версиями

Дополнение (2002 год), которое вводило:

  • Системы управления версиями: Возможность сохранять историю изменений файлов, откатываться к предыдущим версиям.
  • Рабочие пространства (workspaces): Изолированные копии репозитория для разработки.
  • Операции слияния: Базовые механизмы объединения изменений из разных веток.
  • Новые методы: VERSION-CONTROL, REPORT, CHECKOUT, CHECKIN, UNCHECKOUT, MERGE.

RFC 3744 — контроль доступа

Расширение (2007 год) для управления правами пользователей:

  • Принципалы (principals): Пользователи или группы, которым назначаются права.
  • ACE (Access Control Entries): Записи, определяющие, какие операции (чтение, запись, блокировка) разрешены или запрещены для конкретного принципала.
  • ACL (Access Control Lists): Списки таких записей, прикреплённые к ресурсам.

Дополнительные RFC

  • RFC 4709 (2006): «Mounting WebDAV Servers» — описание механизма автоматического монтирования WebDAV-ресурсов в операционных системах.
  • RFC 4918 (2007): Обновление RFC 2518 — исправление ошибок, уточнение семантики, добавление новых свойств (например, DAV:quota-available-bytes). Этот RFC заменил RFC 2518 и стал актуальным базовым стандартом.

Архитектура и принципы работы

Модель клиент-сервер

WebDAV работает по классической клиент-серверной модели поверх HTTP/1.1. Клиент (например, веб-браузер, файловый менеджер, текстовый редактор) отправляет HTTP-запросы с расширенными методами. Сервер (например, Apache с модулем mod_dav, Nginx с модулем ngx_http_dav_module, Microsoft IIS) обрабатывает эти запросы, выполняя операции над файловой системой или специализированным хранилищем.

Ключевые понятия

  • Ресурс: Любой объект, доступный по URL (файл, изображение, документ).
  • Коллекция: Ресурс, который может содержать другие ресурсы. Идентифицируется URL, заканчивающимся на /. Аналог каталога.
  • Свойства (properties): Метаданные ресурса, представленные в формате XML. Каждое свойство имеет имя (пространство имён + локальное имя) и значение. Примеры: DAV:getcontentlength (размер файла), DAV:creationdate (дата создания).
  • Блокировка (lock): Временное ограничение доступа к ресурсу для предотвращения конфликтов. Блокировка может быть эксклюзивной (только один клиент может редактировать) или разделяемой (несколько клиентов могут одновременно редактировать, но с согласованием).
  • Состояние ресурса: Ресурс может находиться в разных состояниях (например, «заблокирован», «не заблокирован»), что влияет на допустимые операции.

Пример взаимодействия

  1. Клиент отправляет запрос PROPFIND /documents/ HTTP/1.1 для получения списка файлов в коллекции /documents/.
  2. Сервер отвечает XML-документом, содержащим URL и свойства каждого ресурса (например, D:getcontenttype, D:getlastmodified).
  3. Клиент выбирает файл report.docx и отправляет запрос LOCK /documents/report.docx HTTP/1.1 с XML-телом, указывающим тип блокировки.
  4. Сервер возвращает токен блокировки (lock token) в заголовке Lock-Token.
  5. Клиент редактирует файл и отправляет запрос PUT /documents/report.docx HTTP/1.1 с заголовком If: (<lock token>).
  6. После завершения клиент отправляет UNLOCK /documents/report.docx HTTP/1.1 для снятия блокировки.

Применение

Совместная работа с документами

WebDAV широко использовался в системах управления контентом (CMS) и корпоративных порталах. Например:

  • Microsoft SharePoint (организация признана иноагентом в РФ) — использует WebDAV для доступа к документам через проводник Windows.
  • Apache Jackrabbit — реализация WebDAV для Java-приложений.
  • ownCloud / Nextcloud — облачные платформы, предоставляющие доступ к файлам через WebDAV.

Файловые менеджеры и операционные системы

  • Windows: Проводник поддерживает WebDAV как сетевой диск (через протокол WebDAV Redirector).
  • macOS: Finder может монтировать WebDAV-ресурсы как сетевые тома.
  • Linux: Многие дистрибутивы поддерживают монтирование через davfs2.

Разработка и веб-серверы

  • Apache HTTP Server: Модуль mod_dav (включён в стандартную поставку) реализует базовый WebDAV.
  • Nginx: Модуль ngx_http_dav_module (ограниченная реализация, не поддерживает блокировки и управление версиями).
  • Microsoft IIS: Встроенная поддержка WebDAV.

Ограничения и критика

  • Сложность реализации: Полная реализация WebDAV (с управлением версиями и контролем доступа) требует значительных усилий. Многие серверы поддерживают только базовый набор методов.
  • Производительность: XML-формат свойств и блокировок может приводить к избыточности данных и снижению скорости, особенно при большом количестве мелких файлов.
  • Безопасность: Базовый WebDAV не шифрует данные (используется HTTP). Для безопасной передачи требуется HTTPS (HTTP over TLS). Кроме того, механизмы аутентификации (Basic, Digest) могут быть уязвимы.
  • Конкуренция: С развитием RESTful API, JSON и облачных хранилищ (например, Google Drive, Яндекс.Диск) WebDAV утратил доминирующую роль. Тем не менее, он остаётся стандартом для многих корпоративных систем и встроенных решений.

Наследие и влияние

Рабочая группа IETF WebDAV заложила основы для более специализированных протоколов:

  • CalDAV (RFC 4791) — расширение для управления календарями (на базе WebDAV).
  • CardDAV (RFC 6352) — расширение для управления адресными книгами.
  • DeltaV (RFC 3253) — управление версиями, которое повлияло на системы контроля версий (например, Subversion использует WebDAV как транспортный протокол).

Хотя группа прекратила активную работу в 2007 году, разработанные ею спецификации остаются актуальными. WebDAV поддерживается во многих современных продуктах, включая облачные хранилища (ownCloud, Nextcloud) и веб-серверы. Протокол продолжает использоваться в корпоративной среде и образовательных учреждениях для организации совместного доступа к файлам.

Источники

  1. RFC 2518 — HTTP Extensions for Distributed Authoring — WEBDAV (1999).
  2. RFC 4918 — HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) (2007).
  3. RFC 3253 — Versioning Extensions to WebDAV (2002).
  4. RFC 3744 — Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol (2007).
  5. Whitehead, J. (1997). «WebDAV: IETF Standard for Collaborative Authoring on the Web». IEEE Internet Computing.
  6. Документация Apache HTTP Server — модуль mod_dav.
  7. Документация Microsoft IIS — поддержка WebDAV.

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

На главную BFOmetr →