【发布时间】:2015-02-18 10:51:46
【问题描述】:
RFC 2518 规定:
GET 的语义在应用于集合时不会改变,
因为 GET 被定义为,“检索任何信息(在形式
实体的) 由 Request-URI" [RFC2068] 标识。GET when
应用于集合可能会返回“index.html”的内容
资源,集合内容的人类可读视图,或 完全不同的东西。因此,a的结果可能是
集合上的 GET 与集合的成员身份无关 收藏。
作为 owncloud 的用户,我经常发现自己因包含大量小文件的文件夹的初始同步性能低下而苦恼(请参阅 owncloud bugtracker 以了解其他报告相同问题的人)。经过一番调查,我得出的结论是,罪魁祸首是底层 WebDAV 实现,它为集合生成一个 index.html,从而迫使客户端为每个文件发出 GET 请求。由于每个 GET 都会导致大量开销(大约数百毫秒),因此整个操作从不使用可用带宽,并且被认为非常缓慢。
那么,广泛使用的 WebDAV 实现不允许客户端一次下载整个文件夹的原因是什么?规范没有明确禁止它。这肯定会提高性能,所以我想这个限制一定有一些技术原因。
【问题讨论】:
-
Nit:RFC 2518 已过时,很久以前已被 RFC 4918 取代。
-
WebDAV 很慢,因为实现很糟糕。切换到更好的 WebDAV 客户端会有所帮助。
标签: performance http webdav