[CalendarServer-dev] CTag/ETag on calendar collections

Peter Mogensen apm at one.com
Tue Jan 5 06:21:34 PST 2010


Hi,

I'm considering using Varnish in front of CalendarServer to cache 
iCalendar data for calendar-collections.

As far as I can see the CTag is necessary because an ETag on a 
collection is not required by WebDAV to change when a member changes 
content.
However... with the current calendarserver behavior returning rolled up 
iCalendar when doing a GET it seems that the Etag must change due to 
RFC4917 9,4 and RFC2616 13.3.4 (ETag must change when GET value changes).

Also, it seems like this is enforced by CalendarServer storing the CTag 
in an attribute of the calendar collection - which in turn make Twisted 
update the ETag based on the modification time of the inode.

So, am I right in concluding that CTag and ETag on a calendar collection 
  will currently always be in sync.
- partly because of the implementation detail of the on-disk storage 
that ctag is in an extended attribute.
- and partly because it's an implicit requirement when GET on a 
calendar-collection returnes rolled up iCalendar

??

Also... Are there any special reason for not returning CTag in a HTTP 
header?

/Peter


More information about the calendarserver-dev mailing list