mnot’s blog

Design depends largely on constraints.” — Charles Eames

Saturday, 26 July 2003

Caching PUT

Filed under: Web

If we WebDAV-enable Web applications, people will be able to interact with them like filesystems. To blog something, you’d be able to write an entry in the text editor of your choice, and then drag-and-drop them into what MSFT has called “Web folders.”

What happens, however, when you’re offline? Right now, you get an error. Sure, you could write that article, save it on your local filesystem, and then drag-and-post it later when you connect, but who wants the hassle? My objective for using computers is to keep all of the state in one place - on the machine and preferably on the network - so I don’t have to remember anything, because my memory is horrible.

A long time ago, when I was pushing some Web caching standards, someone asked me what I thought about WebDAV caching. My answer was “Huh? Why?!?” It’s only become clear to me recently how useful this would be. Caching PUTs so that they would be propogated to the server when connectivity is available again would be fantastic for offline use, and much the same could be done for DELETEs, MOVEs and so forth. Consistency could be assured by the validation tricks explained by Henrik and Daniel so long ago.

The problems in this approach mostly center around propogating information and errors back to the client (e.g., “I couldn’t PUT that because it changed in the meantime”, possibly propogated as a HTTP Warning header), as well as allowing them to control the cache (e.g., “always keep a copy of this URI’s representation on hand”). I think it would be manageable if there were a single user (i.e., a desktop cache), but some pretty severe testing would have to be done, because of the woeful statue of most WebDAV implementations these days.

Interestingly, Adam Bosworth has just raised offline access as a big issue for the Web. If it does require a new paradigm, it’s because the current clients are so bad, and we’re in too deep to make them better; I’m pretty confident that HTTP is up to the task (possibly with some small extensions).


2 Comments

Marc Hadley said:

Looks like the next rev of OS X will include this functionality in iDisk which IIRC is WebDAV based: http://www.apple.com/macosx/panther/idisk.html.

Monday, August 4 2003 at 1:55 AM

Creative Commons