WebDAV中GET和PROPFIND的区别

时间:2015-11-09 11:20:28

标签: http webdav

根据WebDAV规范(RFC 4918):

  

当应用于集合时,GET的语义不变,因为GET被定义为,“检索任何信息(以实体的形式)是   由Request-URI“[RFC2616]。

标识

和PROPFIND

  

检索在Request-URI标识的资源上定义的属性。

因此GET和PROPFIND或多或少地检索资源的信息。从这个意义上说,GET和PROPFIND之间是否有任何重大区别,何时应该使用而不是另一个。

2 个答案:

答案 0 :(得分:8)

你提到的那段,解释它:

  

GET,当应用于集合时,可能会返回“index.html”资源的内容,人类可读的集合内容视图或其他内容。

即。 GET的行为与历史一样,以保持向后兼容性。它通常会返回一个“索引”页面(文件index.htmlindex.php或类似),或者它将自动呈现带有目录内容(文件列表)的HTML页面。这意味着WebDAV服务器可以在与HTTP服务器相同的端口上运行(=作为HTTP服务器的扩展),现有的HTTP请求表现相同。

根据WebDAV规范,WebDAV PROPFIND请求将返回精确定义的,机器可读的XML文档。

如果您正在实施WebDAV客户端或服务器,则您只对PROPFIND感兴趣。 GET响应没有定义的格式(甚至不是内容),因此应用程序无法对其进行解析。

答案 1 :(得分:2)

WebDAV PROPFIND方法用于检索URI提及的资源的属性。

HTTP GET方法可以返回生成的数据,而不是资源的源文本,以防它指向数据生成资源。请参阅RFC 2616 - 超文本传输​​协议中的以下文本。

  

GET方法意味着检索由Request-URI标识的任何信息(以实体的形式)。如果Request-URI引用数据生成过程,则生成的数据应作为响应中的实体而不是过程的源文本返回,除非该文本恰好是过程的输出。来源 - RFC 2616