- From: Julian Reschke <julian.reschke@gmx.de>
- Date: Wed, 30 Oct 2024 10:31:45 +0100
- To: ietf-http-wg@w3.org
On 30.10.2024 03:50, Michael Toomim wrote: > On 10/28/24 11:01 PM, Julian Reschke wrote: >>> Lisa also asked what happens when a client requests a version that the >>> server has stopped storing. We propose a "309 Version Unknown Here" >>> status code in Section 2.6 >>> <https://datatracker.ietf.org/doc/html/draft-toomim-httpbis-versions#section-2.6> for a server to say that it doesn't know a version. This isn't a client error (4xx-series response) or a server error (5xx-series response). We are calling it a 3xx-series (redirection and further action required) because further action could retrieve a resource's history, although the mechanisms for doing so are beyond the scope of this draft. >> >> If that was true, a 404 or a 410 shouldn't be a 4xx either. >> >> I would think an existing 4xx could be used here (depending on the >> reason why the resource was not found), together with an error document >> (as per RFC....). > > I agree that either 3xx or 4xx could work. I considered using a 4xx when > writing the draft. > > The reason I chose 3xx is that there is a strong sense in which "Version > Unknown Here" is not an error, but is just a redirection. We are > building for a P2P world in which we expect peers to independently > choose how much history to store, and which versions to drop, knowing > that other peers probably store them. So the process of requesting a > version in a P2P network can involve asking around at lots of peers > before you find the old history you are looking for. Thus, the request > involves lots of redirection as it pokes around the network, which makes > "Version Unknown Here" a redirection like 301, 302, 303, 305, 306, 307, > and 308. The request does not conceptually finish until the client finds > the version, or gives up. So does the server know the new Location? In which case why not use an existing 3xx? > On the other hand, both 404 and 410 are unambiguous errors — the client > is requesting something that plainly does not exist. The request ends as > soon as the 4xx error is received by the client. Caches can store 4xx > responses (except 407). It doesn't exist, after all. And yes, caches can store it (with expiry information). Why would that be incorrect? > A 3xx says "I don't know, ask around." A 4xx says "I *know* that this > doesn't exist." Actually, 3xx usually means: it's not "here", please look "there". > So it fits the semantics of 3xx redirection to me, rather than 4xx, but > I can see the argument both ways. > ... Best regards, Julian
Received on Wednesday, 30 October 2024 09:31:52 UTC