Originally posted on 2006-04-16.
Clarification 2006-04-19: The misfeature discussed below applies to feeds only, as far as I know, not to regular HTML serving.
Update 2007-05-06: I have just learned that the option in question is Activate strict RFC2616 RSS-Feed compliance. I have no idea when it was added.
While investigating (wearing my hat as the Planet Haskell editor/technician) John Goerzen‘s Planet floods, I stumbled on a very strange misfeature in Serendipity. A HTTP/1.1 client can ask a server to send a file over only if the file has been modified since some date. What Serendipity does is send only those entries dated after the provided timestamp. Now, this might seem like a triviality, but it isn’t. The HTTP/1.1 feature is there to make proxy caching work. It is very important for caching that the file sent is the same, regardless whether the request is “since this timestamp”, or a regular request. Serendipity’s behaviour breaks this very important caching invariant!
What’s more is that Serendipity’s developers seem rather proud of this misfeature. While the feature this misuse of HTTP/1.1 is intended to create is certainly useful, it should be implemented as a separate mechanism, and not by misusing HTTP/1.1 caching! (A separate protocol is probably necessary, perhaps specifying a URI query syntax for this is enough; obviously, one needs to get the aggregators to support this.)
Serendipity will apparently have a configuration option to fix this, but it will be off by default. Serendipity users, upgrade (as soon as it is possible) and mark that option On, to remain compatible with the rest of the Internet.