» Conditional GET Support for perpubplat #
Paul R. Brown @ 2008-03-05
As part of being a good netizen, I added conditional GET support
(per 9.3
in the HTTP 1.1 spec) to perpubplat in the form of ETag
(MD5 of feed URI and last modified date) and Last-Modified
headers on generated Atom feeds and corresponding If-None-Match
and If-Modified-Since
headers on requests for Atom feeds with proper precedence. (For
precedence, the spec dictates that a successful
If-None-Match assertion means that any
If-Modified-Since assertion is ignored.) A quick
curl experiment shows that things appear to work:
$ curl -i -s -o - http://mult.ifario.us/f/t/haskell/atom.xml | \ > egrep \^ETag\|\^Last-Modified\|\^HTTP\/ HTTP/1.1 200 OK Last-Modified: Sat, 23 Feb 2008 23:55:23 GMT ETag: 78790a6a7d6bddd10f6f9c412f2aba97 $ curl -H 'If-None-Match: 78790a6a7d6bddd10f6f9c412f2aba97' \ > -i -s -o - http://mult.ifario.us/f/t/haskell/atom.xml | \ > egrep \^HTTP\/ HTTP/1.1 304 Not Modified $ curl -H 'If-Modified-Since: Sat, 23 Feb 2008 23:55:23 GMT' \ > -i -s -o - http://mult.ifario.us/f/t/haskell/atom.xml | \ > egrep \^HTTP\/ HTTP/1.1 304 Not Modified $ curl -H 'If-None-Match: foo' -H 'If-Modified-Since: Sat, 23 Feb 2008 23:55:23 GMT' > -i -s -o - http://mult.ifario.us/f/t/haskell/atom.xml | \ > egrep \^HTTP\/ HTTP/1.1 200 OK
