据我了解,CalDAV 是 WebDAV 的扩展,用于管理 iCalendar 订阅。
Webcal 是一个 URL 方案,它做同样的事情,但不是标准化的。
我就在这里?无论哪种方式都有什么优点/缺点?
朱利安所说的一切,但大概真正的问题是关于普通 iCalendar-over-HTTP(通常称为 webcal、“iCalendar 订阅”或“订阅日历”)和 CalDAV 之间的区别。或者换句话说:CalDAV 添加了什么。
简单地说:在 iCoHTTP 中,您通常将整个日历存储在一个 URL 下,例如“ http://yahoo.com/sports/nba/schedule-2015.ics ”(或 webcal:)。这个 URL 代表一个完整的日历并且几乎总是只读的(你不能对这个 URL 执行 PUT)。这是为什么?因为要在此类日历中添加/更改/删除单个事件,您需要重新传输整个日历。
在 CalDAV 中,日历是 WebDAV 集合,有一个代表日历的 URL,例如:“ http://icloud.com/calendars/joe/home/ ”,然后每个事件都有一个子 URL。像' http://icloud.com/calendars/joe/home/buy-beer.ics'、'http://icloud.com/calendars/joe/home/family-meeting.ics '等等。然后,您可以删除、放置等此类集合的单个项目。
总结:如果您只是想发布一个很少更改并通过其他方式(如 CMS)管理的日历,您可以使用 iCal-over-HTTP。如果您想提供一个用户(或者可能是一群人)可以在他们的日历客户端中更改的日历,您需要使用 CalDAV。
CalDAV 也有一套扩展,例如许多 CalDAV 服务器可以自动为您执行调度操作(设置会议等)。有一个扩展可以与其他人共享日历,等等。
PS:这有点令人困惑,但是是的,Apple 也有一种使用 WebDAV 来管理 iCalendar 订阅的方法。但这是与 CalDAV 一起工作的另一件事。
CalDAV 是一种协议,扩展了 WebDAV,即 HTTP。
Webcal 是 AFAIK 由 Apple 发明的 URI 方案,其语义与“http”完全相同,只是 Safari(可能还有其他一些浏览器)知道 URI 指的是日历,因此调用“正确”的应用程序时不需要必须获取资源。
(当然,正确的做法是检查媒体类型(内容类型标头字段),然后调用匹配的应用程序。
所以这是一种反模式(Apple 使用“itms”URI 再次完成)。