WebDAV 是什么?让浏览器像本地文件一样操作服务器

你有没有遇到过这种情况:想在浏览器里直接编辑服务器上的配置文件,或者批量上传几十张图片到网站?每次都要登录FTP客户端,拖来拖去,烦不烦?

WebDAV 就是为了解决这个问题而生的。

一、WebDAV 是什么?

WebDAV 全称 Web-based Distributed Authoring and Versioning,基于网络分布式创作和版本控制。

用大白话说:WebDAV 是 HTTP 协议的扩展,让你能用浏览器像操作本地文件一样操作服务器上的文件。

它给 HTTP 增加了一些新指令:

  • PROPFIND - 查看文件属性
  • PROPPATCH - 修改文件属性
  • MKCOL - 创建文件夹
  • COPY - 复制文件
  • MOVE - 移动文件
  • LOCK/UNLOCK - 文件锁定

这些操作看起来熟悉吗?没错,就像你在 Windows 资源管理器里右键复制、粘贴、重命名文件一样。

二、WebDAV 有什么用?

1. 远程编辑配置文件

很多服务器管理面板(比如宝塔、1Panel)都内置了 WebDAV 功能。你可以直接在本地用 VS Code 打开服务器目录,改完保存,文件自动同步到服务器。

比 SSH 登录命令行编辑舒服多了。

2. 批量上传媒体文件

做网站、做博客的人经常需要上传大量图片。用 WebDAV,你可以直接把整个文件夹拖进浏览器,后台自动批量上传。

不用一个个点上传按钮,效率翻好几倍。

3. 备份自动化

很多 NAS(群晖、威联通)和云存储都支持 WebDAV。你可以用备份软件定时把重要文件推到 WebDAV 服务器,实现异地备份。

比手动 copy 靠谱多了。

4. 协同编辑

WebDAV 支持文件锁定。多人同时编辑同一个文件时,第一个人锁定文件,其他人只能读不能写,避免覆盖冲突。

三、怎么用 WebDAV?

1. 配置 WebDAV 服务器

Nginx 是最常用的选择:

location /webdav {
    dav_methods PUT DELETE MKCOL COPY MOVE;
    dav_access user:rw group:rw all:r;
    client_max_body_size 0;
    
    autoindex on;
    
    auth_basic "WebDAV";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

关键点:

  • dav_methods 指定允许的操作
  • client_max_body_size 0 允许上传任意大小文件
  • 必须配密码认证,否则谁都能写你的服务器

2. 客户端连接

Windows: 右键"此电脑" → “映射网络驱动器” → 输入 http://你的服务器/webdav → 填用户名密码

Mac: Finder → 前往 → 连接服务器 → 输入 http://你的服务器/webdav

Linux:

# 安装 davfs2
sudo apt install davfs2

# 挂载
sudo mount -t davfs http://你的服务器/webdav /mnt/webdav

浏览器: 直接打开 http://你的服务器/webdav,大部分现代浏览器都能显示文件列表。

3. 常用工具

  • Cyberduck(免费):跨平台 FTP/WebDAV 客户端
  • Transmit(付费):Mac 上最好的文件客户端
  • DAVx5(免费):Android 同步日历和联系人
  • rclone(免费):命令行工具,支持 WebDAV

四、WebDAV 安全吗?

WebDAV 本身没有加密,必须配合 HTTPS 使用。否则用户名、密码、文件内容都会被中间人看到。

另外要注意:

  • 强密码 + 限制 IP 访问
  • 不要把 WebDAV 暴露在公网,用 VPN 或内网访问
  • 定期清理孤儿锁(文件被异常锁定后无法删除)

五、WebDAV vs FTP vs SFTP

特性WebDAVFTPSFTP
基于协议HTTPTCPSSH
加密需 HTTPS
防火墙友好是(80/443端口)否(多端口)是(22端口)
文件操作丰富(复制/移动/锁定)基础基础
浏览器支持原生需插件需客户端
性能中等较慢

简单总结:WebDAV 适合轻度文件管理,SFTP 适合大文件传输,FTP 基本可以淘汰了。

总结

WebDAV 把服务器变成了"网络硬盘",让文件管理变得像操作本地文件夹一样简单。

如果你经常需要远程编辑服务器文件、批量上传素材、或者做自动化备份,WebDAV 值得了解一下。

你的服务器有开 WebDAV 吗?还是只用 FTP?