10.4.11 410 GoneThe requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. This response is cacheable unless indicated otherwise.
The 410 response is primarily intended to assist the task of web maintenance by notifying the recipient that the resource is intentionally unavailable and that the server owners desire that remote links to that resource be removed. Such an event is common for limited-time, promotional services and for resources belonging to individuals no longer working at the server's site. It is not necessary to mark all permanently unavailable resources as "gone" or to keep the mark for any length of time -- that is left to the discretion of the server owner.
I've read it before, of course, but for some reason today it leaped out at me, because I don't think I've ever seen a 410. And I should have. We all should have. Because there are lots and lots of "404s" being served where the site knows, or should know, that the requested resource used to be there and was deleted. Instead of cute little 404 pages†, there should be some "He's dead, Jim" 410 pages, too.
But note the wishy-washy language in both paragraphs. Basically, they're giving all HTTP implementations an "out" to just use 404s if it is "too hard" to figure out whether something used to be there and isn't now, or is only mostly dead instead of all dead. Which is BS, in my opinion (BSIMO). I am not a big fan of protocols that allow "Use this. Or that instead. Whatever." in terms of requests or responses. If 410s are "the right answer" for something that is permanently gone, then make it MUST. If that is too hard to implement and everyone's going to use 404s instead anyway, then delete the damned thing from the spec, because then semantically there probably isn't any real difference between a 404 and a 410, anyway. Unused components of a spec are noise, which is anathema, since specifications are meant to clarify and limit noise, by definition.
</screed>
† Which, in this example, while being a cute 404 page, is actually returned in response to a "403 Forbidden" status - interesting. And wrong.

0 comments:
Post a Comment