В чем разница между Webcal и WebDAV/CalDAV?

Насколько я понимаю, CalDAV — это расширение WebDAV для управления подписками iCalendar.

А Webcal — это схема URL, которая делает то же самое, но не стандартизирована.

Я здесь? Какие плюсы/минусы в любом случае?


person user3332631    schedule 05.05.2015    source источник


Ответы (2)


Все, что сказал Джулиан, но, по-видимому, реальный вопрос заключается в разнице между простым iCalendar-over-HTTP (обычно называемым webcal, «подписка на iCalendar» или «подписной календарь») и CalDAV. Или другими словами: что добавляет CalDAV.

Проще говоря: в iCoHTTP вы обычно храните целый календарь под одним URL-адресом, например «http://yahoo.com/sports/nba/schedule-2015.ics' (или webcal:). Этот URL-адрес представляет собой полный календарь и почти всегда доступен только для чтения (вы не можете выполнить PUT для этого URL-адреса). Почему это? Потому что, чтобы добавить/изменить/удалить одно событие в таком календаре, вам нужно будет заново перенести весь календарь.

В 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 могут автоматически выполнять операции планирования за вас (назначать встречи и т. д.). Существует расширение для обмена календарями с другими людьми и так далее.

P.S.: Это немного сбивает с толку, но да, у Apple также есть способ использовать WebDAV для управления подписками iCalendar. Но это еще одна вещь, которая работает вместе с CalDAV.

person hnh    schedule 05.05.2015

CalDAV — это протокол, расширяющий WebDAV, то есть HTTP.

Webcal — это схема URI, которая, насколько мне известно, была изобретена Apple и имеет точно такую ​​же семантику, как «http», за исключением того, что Safari (и, возможно, некоторые другие браузеры) знают, что URI относится к календарю, и поэтому вызывают «правильное» приложение без необходимо получить ресурс.

(Конечно, правильно было бы просто проверить тип носителя (поле заголовка типа контента), а затем вызвать соответствующее приложение.

Итак, это анти-шаблон (снова сделанный Apple с URI «itms»).

person Julian Reschke    schedule 05.05.2015
comment
Проблема с «правильным» способом заключается в том, что браузеры запускают приложение не с URL-адресом, а с локальным именем файла. Если вы не пишете расширения для браузера. Итак, если это анти-шаблон, как правильно это исправить? - person Evert; 25.05.2015
comment
Не уверен, что вы пытаетесь сказать здесь. Ответ Джулиана содержит правильный путь. Прямо сейчас «браузер» имеет специальную обработку URL-адреса «webcal», что является «неправильным». Вместо этого он должен выполнить запрос HEAD (или GET) к ресурсу, а затем вызвать соответствующее приложение (с URL-адресом, а не [только] загруженным файлом) в зависимости от типа MIME. Схема webcal — это просто быстрый хак, чтобы все заработало. - person hnh; 25.05.2015