* Mark Nottingham <[EMAIL PROTECTED]> [2005-06-30 22:15]: > The problem I'm solving is how to reconstruct the *entire* > state of the logical feed, not just one partial representation > of it; although RFC3229 could be used to do that, it would > require feed authors to post the entire content of their feed > (potentially, many megabytes). This would incur a huge load, > because any clients that don't support RFC3229 would have to > GET the entire feed, leading to severe bandwidth problems.
No, that’s not necessary. For fetches which don’t supply any RFC3229 headers, you can simply return the partial feed that you always return. The only problem to solve in that case is how one would go about downloading the entire archive when one has never polled the feed before. A simple solution that lets anyone define their own server-side mechanism is to use a different URL given by @rel='full-archive' (or something like that.) But this is problematic in that there’s no defense if a non-RFC3229-compliant client ever stumbles upon this URL. This could be avoided by an extension element that provides an RFC3229-compliant client with the details it needs to supply the headers for which the server will return the entire feed. (In the simplest form it could simply be an element that contains the ETag itself as its content, though that feels like a kludge along the lines of HTML’s <meta>.) Clients without RFC3229 support will then never be able to request the entire archive. (The point is not to defend against abuse – that’s not possible –, it is to prevent harm from hapless users with dumb aggregators.) Thinking about it, the cleanest way to solve this is actually not the use of an extension element in Atom, but adding support for this scenario to RFC3229+feed. The original RFC3229 obviously does not assume it might be used an environment where partial representations are, in fact, the default, rather than the exception, as is generally the case with feeds. RFC3229+feed could f.ex suggest that for requests that include RFC3229 headers, the server return headers with the response which inform the client how to request the entirety of the feed – maybe "Resource-Initial-ETag" or something like that. Regards, -- Aristotle Pagaltzis // <http://plasmasturm.org/>