首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分裂caldav PROPFIND响应过大时

问分裂caldav PROPFIND响应过大时
EN

Stack Overflow用户
提问于 2013-11-25 09:05:56
回答 3查看 284关注 0票数 0

我自己开发的CalDAV实现通常运行良好,但有一个问题。有数百个日历的客户端通过移动网络进行同步。每次iCalendar用depth=1询问PROPFIND时,我的服务器必须回答全部日历列表,给出巨大的响应,有时由于移动网络不稳定而失败。

我想将响应分割成较小的块(比如每个响应30次)会有帮助,但我不知道是否真的有可能。

所以问题是--我可以强迫客户端在连续的N个日历块的请求中使用PROPFIND日历吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-25 10:12:02

不,还没有一致同意的标准。

也就是说:(1)您是否压缩了响应?(2)您看过https://datatracker.ietf.org/doc/html/draft-murchison-webdav-prefer-05吗?

票数 1
EN

Stack Overflow用户

发布于 2013-11-25 23:48:38

当你说“百年历”时,是指“百年一遇”吗?因为PROPFIND对100多个项目的响应实际上并不大,这是完全正常的。但通常情况下,日历中的事件列表可能很大。但是苹果通常做的很好的caldav客户端,他们应该做报告请求与适当的日期范围,这样他们就不会有太多的事件。

您的Caldav服务器可能没有实现所有的报告,因此客户端回到了一种更简单的方法。

票数 0
EN

Stack Overflow用户

发布于 2014-02-27 00:44:42

正如布拉德所提到的,您需要区分日历的数量和日历中事件的数量。

拥有数以百计的日历是非常不寻常的,但这应该是可以的。有100个结果的PROPFIND并不是太大。还要注意CTag,如果这是可用的,那么首先您知道是否需要同步日历内容。

最有可能的情况是,您实际上是在询问一些包含大量事件的日历,可能有数千个。在这种情况下,PROPFIND:1在日历上抓取ETags以检查更改可能变得很大&缓慢。(在任何情况下,请确保您确实支持接受-编码: gzip和简要:t)。

对于这种情况,有一个RFC'd解决方案: RFC 6578。对于同步报告,您只需要返回自上次同步后更改的记录。它得到iOS和iCal的支持。规范还支持批处理(在RFC中称为截断),但这并不是在所有客户机中实现的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20188414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档