[uf-rest] A Microformat for cache invalidation?
Mark Nottingham
mnot at yahoo-inc.com
Tue Mar 21 13:07:19 PST 2006
One of the useful features of HTTP is the ability of a non-GET method
(i.e., one with side effects) to target a resource to be invalidated
by caches with a URI. See:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.10
http://www.mnot.net/blog/2006/02/18/invalidation
This is nice and useful, but more complex RESTful applications will
find it lacking; often, a change in the state of one resource will
affect many others, not just one. I've had thoughts of coming up with
HTTP extensions (or a specific entity format) to enable this on the
back burner for a while, when I realised (duh) that a Microformat
would do the trick nicely.
E.g.,
<html>
<head><title>Delete Successful</title></head>
<body profile="http://example.org/not/spec'd/yet">
<h1>It was deleted.</h1>
<p>This affects the state of the following resources:</p>
<ul>
<li><a class="invalidation" href="http://www.example.com/things/
this">This</li>
<li><a class="invalidation" href="things/that">That</li>
<li><a class="invalidation" href="http://www.example.org/stuff/the
other">The Other</li>
</ul>
</body>
</html>
With the same security considerations as in section 13.10 (although I
could see it being modified; see separate cover).
The semantics would be that clients understanding this extension
could also invalidate cached entries marked up with the microformat.
They couldn't be required to do so, of course, because you can't
guarantee that they'll be understood (except in controlled
environments), but it seems like it would be helpful in some
scenarios. Especially if other extensions (e.g., one for offline Web
caching; see http://www.mnot.net/blog/2006/02/07/offline) could
leverage it.
The syntax could be a class on 'a' tags, or a link tag, or both.
Thoughts?
--
Mark Nottingham
mnot at yahoo-inc.com
More information about the microformats-rest
mailing list