我发现其中一个WebDAV客户端正在向WebDAV文件夹(集合)发送HEAD请求。我正在测试的WebDAV服务器不支持文件夹上的HEAD并使用HTTP / 1.1 405方法不允许响应。 WebDAV客户端无法连接。
[Request]
HEAD /
Connection: Keep-Alive
Accept-Encoding: gzip,deflate
Host: localhost:5182
[Response]
HTTP/1.1 405 Method Not Allowed
WebDAV服务器应该支持文件夹上的HEAD还是WebDAV客户端错误?
答案 0 :(得分:2)
来自RFC 2616
HEAD方法与GET相同,只是服务器不能 在响应中返回一个消息体。元信息包含 在HTTP头中响应HEAD请求应该是相同的 响应GET请求发送的信息
这表明只有在支持GET的情况下才应该在资源上支持HEAD。
许多服务器不会在文件夹上实现GET,因此不实施HEAD是合理的。所以对我来说这听起来像是一个客户端错误。
客户端应该选择OPTIONS进行功能发现。
答案 1 :(得分:2)
RFC4918声明:
类似地,由于HEAD的定义是没有响应消息体的GET,因此当应用于集合资源时,HEAD的语义不会被修改。
是的,它应该支持它。
答案 2 :(得分:1)
是。它是RFC 2616的要求。
答案 3 :(得分:1)
HEAD方法基本上是“如果我打电话给GET会有什么标题?”现在确实是在WebDAV服务器上确定应该为文件夹上的GET返回什么。它几乎总是索引(以html格式)或“未找到”响应(404)。发送“不允许的方法”并不是一个好的实现。这意味着不允许目录浏览,这在WebDAV服务器上完全没有意义。换句话说,文件夹上的HEAD请求几乎总是返回HTML索引(减去响应主体)或404错误。 404的目的是通知客户端没有与所请求URL的最后一段匹配的文档。