On 01/07/2005, at 5:28 AM, A. Pagaltzis wrote:
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.

How do you figure that? HTTP delta encoding is a generic mechanism layered into HTTP; if you do a bare GET against a resource, the server has to return the whole representation.


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.)

Where does it talk about this in RFC3229? A delta-capable intermediary is going to be completely unaware of this, and very likely to return erroneous responses.


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.

Maybe it shouldn't be called RFC3229, but what it is; a format- specific extension to HTTP.

Which begs the question; why do it in HTTP at all, if it's format- specific? Format-specific protocol extensions are generally considered bad practice. Why not do it in the format?

Regards,

--
Mark Nottingham     http://www.mnot.net/


Reply via email to