Are you talking about using ETag HTTP response headers, If-Match request headers, and 304 Not Modified response status codes? That's a gross misapplication of those mechanisms if so, and this will break intermediaries along the path.

Even if it's cast as a query parameter in the URI (for example), it requires query support on the server side, a concept of "discovered time" (as you point out), and places constraints on the ordering of the feed.

Are you proposing this instead of the mechanism currently described in FH? Alongside it?


On 2006/06/07, at 3:35 PM, James Holderness wrote:


Mark Nottingham wrote:
I'm not sure how ETags and 304s come into it -- it sounds like you're proposing using either the entry-level updated date or the entry- level id as input to a server-side function to select a set of entries from the feed. Can you paint out your proposal in protocol exchanges, please?

Entry-level updated date is close, but not quite what would be needed. For this to work, it requires that search engines store a date that represents when a result is "discovered". In other words the date that an entry is added to the search engine database.

Client connects to server with a specific query.
Server returns the first page of results along with an etag representing the current internal datetime as accurately as possible. Client connects to server with "next" link from first page (the link would obviously have to include the query as well as the page number).
Server returns the second page of results.
etc.

<wait several days>

Client connects to server with a specific query along with etag returned from the first query. Server returns only those results that match the query *and* have a "discovered" date >= etag date value. Server also returns etag representing the current internal datetime as before. Client connects to server with "next" link from first page (this link would include the query and the page number, but also the the etag value). Server returns the second page of results that match the query *and* have a "discovered" date >= etag value.
etc.

That make sense?

If the server doesn't have the concept of a "discovered" date, then there's not much we can do. We can return a paged set of results, but they can't be updated in any meaningful way so the feed should not be subscribed to.

Client connects to server with a specific query.
Server returns first page of results along with an etag containing a hash of the star-spanngled banner.
Client connects to server with "next" link from first page.
Server returns the second page of results.
etc.

<wait several days>

Client connects to server with a specific query along with etag returned from initial query. Server notices that there is an etag, doesn't care what it is set to, and just returns 304 regardless.

In other words, you can retrieve the feed once, but never again. That's as good as it gets.

Regards
James



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

Reply via email to