While writing recently about short-lived feeds for breaking news and aggregator support for deleted feeds, it occurred to me that publishers may not want to delete their short-lived feeds once they've finished posting to them. What do you do when you're not going to update a feed anymore, but you don't want to delete it? How do you tell aggregators to stop polling?

I have a few ideas:

1) Send an Expires header with your feed with a date a long way in the future. That will stop caching proxies and aggregators that support that header from requesting the feed at all until the date you tell them.

2) Send Last-Modified and ETag headers with the feed, and check the request headers for them so that you'll always be able to send small "304" (not modified) responses to aggregators that support them, rather than sending them the whole feed every time they poll.

Both of the above will work today with clients that support those headers. But some client software doesn't have access to response headers and/or can't control the request headers they send. Plus, both of those methods are ways of saying "I don't/won't have anything new now/until such and such a date", not "I won't ever be updated again". So creating an in-format method of signaling that a feed is closed would not be violating the principle of avoiding duplication at the protocol and application layers. Thus:

3) Create an extension element something like this:

<ext:feed-closed>1</ext:feed-closed>

...and specify that aggregators that see this element in a feed should not poll that feed again (at least not without use intervention).