Aggregators and HTTP redirects

I am in the process of reorganizing parts of this site. One of the things I would like to do is to move _all_ “my feeds”:http://virtuelvis.com/help/xml.html to a dedicated directory, /feeds/, like I’ve done for the recently added feeds.
However, there is one obstacle, and you could call this a lazyweb question: How does the aggregator you’re using handle HTTP(HyperText Transfer Protocol) redirects?


First, some background. There are three types of HTTP redirects, using HTTP status codes 301, 302 and 307. 302 is known as a “302 Found”, indicating that a resource has been found at a different location than requested. The HTTP 307 Status Code bears the name “307 Temporary Redirect”. More information on these can be found in RFC 2616, Section 10, “HTTP/1.1 Status Code Definitions”:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
301 is known as a _permanent redirect_, indicating that the document in question has permanently moved to a new location. The HTTP/1.0 specification, aka(also know as) “RFC 1945”:http://www.w3.org/Protocols/rfc1945/rfc1945 has the following to say about permanent redirects:
bq. The requested resource has been assigned a new permanent URL and any future references to this resource should be done using that URL.
The relevance to aggregators is this: Upon encountering a 302 or 307 error, an aggregator should just fetch the resource, as indicated by the HTTP response sent by the server, but it should not do anything in particular. Upon encountering a HTTP 301 error, the aggregator should _change the subscription address accordingly_. How, or if it notifies the user that the address has changed, I believe is up to the aggregator.
Mark Pilgrim has written a series of “Aggregator HTTP tests”:http://diveintomark.org/archives/2003/07/22/aggregator_http_tests. There are a great number of tests, but for the time being, the tests for 301, 302 and 307 are particularily interesting.
Go to “the test index”:http://diveintomark.org/tests/client/http/ – and subscribe to the three feeds mentioned.
# What aggregator are you using, including version number?
# How does the aggregator handle a 301 error? Does the subscription address for the feed change? (It should).
# On the 302 and 307 feeds, does the aggregator simply fetch the resources at their new, temporary addresses, without changing the subscription address (it should), or do you get an error of some sort?
# Finally, try the 410 feed. This error is known as “410 Gone”, and means that the feed no longer exists. Does your aggregator unsubscribe from the feed, with an appropriate error message? (It should).

Comments are closed.