日历服务器需要哪些协议

时间:2016-03-30 18:05:20

标签: calendar icalendar webdav caldav

我正在.Net中构建一个日历服务器。我希望系统的第一个版本能够为任何日历客户端提供功能和互操作性。该系统适用于我的大学,是我的论文,这就是为什么我没有足够的时间来实现这些系统应该实现的所有协议。

日历系统服务器中哪些协议 REQUIRED 才能为客户端运行?到现在为止它实现了RFC 5545(iCalendar),我正在完成RFC 4791(CalDAV)和WebDAV的一些扩展,在此之后我将实现RFC 3744(ACL)。

我应该实施RFC 6638(调度扩展到CalDAV),RFC 3253(版本扩展到WebDAV)还是其他任何?

将来我想实施所有这些协议,但我现在没有时间。

1 个答案:

答案 0 :(得分:4)

尽管有“亲密的选票”,但我认为这是一个有效的问题。那里有很多标准,还有很多依赖。你当然不需要一切。

事实是,您只需要一个子集,几乎没有人实现整个规范。

您需要什么取决于您希望支持哪些客户端和哪些功能。所以我们要说你想支持iCal和Thunderbird。

然后至少你需要大块的CalDAV(RFC4791)。您不需要每个 REPORT,但至少需要calendar-multiget和calendar-query。没有使用freebusy东西。但是对于日历查询报告,客户端会有一小部分实际查询。

您需要RFC3744的重要部分。您可以跳过大多数REPORT,但您需要一个主体系统和与访问控制相关的WebDAV属性。您也不需要ACL方法。 WebDAV ACL主要用于主体和报告访问信息(但不会更改)。

没有人使用RFC3253(版本控制)。

您可能需要current-user-principal-URL(rfc5397)。

需要安排(RFC6638)。如果没有安排,客户端将同步很好。

最后,支持WebDAV Sync(rfc6578)非常有用。客户应该能够在没有它的情况下生活,但实际上他们往往行为不端。如果不支持该规范,您可以使用受到广泛支持的专有ctag。它更简单,完成工作,但不标准。

我认为这个答案不是一个非详尽的清单。这是一个帮助您入门的概述。如果您对我提到的规格有更具体的问题,请在此处发表评论,我很乐意进一步扩展这个答案。