// Engineering Log

Протоколы передачи файлов: Часть 6 — WebDAV

Опубликовано 22.09.2026

WebDAV (Web Distributed Authoring and Versioning) — расширение протокола HTTP, которое превращает веб-сервер в сетевое хранилище: файлы можно не только скачивать, но и загружать, переименовывать, перемещать и блокировать на время редактирования. Главное преимущество WebDAV — он работает поверх обычного HTTPS, поэтому проходит через межсетевые экраны и прокси там, где SMB или NFS заблокированы.

Как устроен протокол

К стандартным методам HTTP (GET, PUT, DELETE) WebDAV добавляет свои:

  • PROPFIND — получить свойства файла или список содержимого каталога;
  • PROPPATCH — изменить свойства;
  • MKCOL — создать каталог (в терминах WebDAV — коллекцию);
  • COPY и MOVE — скопировать и переместить;
  • LOCK и UNLOCK — заблокировать файл, чтобы два пользователя не перезаписали изменения друг друга.

Клиент, открывающий WebDAV как сетевой диск, постоянно отправляет PROPFIND, чтобы показать содержимое каталогов, и LOCK, когда офисная программа открывает документ на запись. Поэтому сервер, который понимает только часть методов, с большинством клиентов работать не будет.

Сервер на Apache

В Apache WebDAV реализуют модули mod_dav и mod_dav_fs. Пример из документации Apache:

apache
DavLockDB "/usr/local/apache2/var/DavLock"

<Directory "/usr/local/apache2/htdocs/foo">
    Dav On

    AuthType Basic
    AuthName DAV
    AuthUserFile "user.passwd"

    <RequireAny>
        Require method GET POST OPTIONS
        Require user admin
    </RequireAny>
</Directory>

DavLockDB задаёт файл базы блокировок — каталог должен быть доступен на запись пользователю Apache. Документация прямо предупреждает: не включайте WebDAV, пока сервер не защищён, иначе любой сможет размещать файлы. Пароли при базовой аутентификации передаются только по HTTPS. Для защиты от перегрузки служат LimitXMLRequestBody и выключенный по умолчанию DavDepthInfinity.

Почему nginx не лучший выбор

Модуль ngx_http_dav_module в nginx по умолчанию не собирается и поддерживает только PUT, DELETE, MKCOL, COPY и MOVE. Документация nginx отмечает, что клиенты, которым нужны другие методы WebDAV, с ним работать не будут. PROPFIND и LOCK добавляет сторонний модуль nginx-dav-ext-module, но это отдельная сборка. Для полноценного WebDAV-сервера проще взять Apache или готовое приложение.

Nextcloud и готовые решения

На практике WebDAV чаще всего получают вместе с файловым облаком. Nextcloud отдаёт хранилище каждого пользователя по WebDAV, поэтому к нему можно подключиться обычным клиентом или сетевым диском, а права доступа, общие папки и журнал действий берёт на себя сам Nextcloud. Подробнее — в статье «Собственное облако: Часть 1 — Файловое хранилище на Nextcloud».

Клиенты

  • macOS — «Finder → Подключение к серверу», адрес вида https://files.example.ru/remote.php/dav/files/user/.
  • Linux — файловые менеджеры GNOME и KDE (протоколы davs://), davfs2 для монтирования в систему.
  • rclone — умеет работать с WebDAV как с любым другим хранилищем: синхронизировать каталоги, монтировать, копировать в S3 и обратно. Удобен для резервного копирования с WebDAV-хранилища.
  • Windows — встроенный клиент (служба WebClient, «Подключить сетевой диск») Microsoft в ноябре 2023 года объявила устаревшей: служба не запускается по умолчанию и больше не развивается. Для Windows надёжнее стороннее приложение (например, клиент Nextcloud) или rclone.

WebDAV, S3 или SMB

  • WebDAV — когда нужен доступ к файлам через интернет по HTTPS, с блокировками и работой «как с папкой», без VPN.
  • S3 — для резервных копий, архивов и медиафайлов, которые записываются целиком; программный доступ удобнее, чем «сетевой диск».
  • SMB или NFS — для работы в локальной сети, где важна скорость и много мелких файлов.

Типичные ошибки

  • WebDAV по HTTP без TLS. Пароли и файлы идут открытым текстом.
  • Неполная поддержка методов. Сервер принимает загрузку, но не отвечает на PROPFIND или LOCK — клиенты не показывают каталоги или не открывают документы на запись.
  • Большие файлы через обратный прокси. Лимиты на размер запроса и таймауты прокси обрывают загрузку крупных файлов; их нужно поднять для адреса WebDAV.
  • Ставка на клиент Windows. Устаревшая служба WebClient ведёт себя нестабильно с большими файлами и самоподписанными сертификатами; лучше сразу выбрать другой клиент.

// Contact

Нужна помощь?

Свяжись со мной и я помогу решить проблему

Написать в Telegram

Отвечаю в течение рабочего дня (03:00–13:00 GMT)

Или оставьте заявку здесь:

Подтвердите, что вы не бот.

Написать и получить быстрый ответ