// 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:
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)
Или оставьте заявку здесь:
// Related