- From: Josh Cohen <joshco@gmail.com>
- Date: Thu, 31 Oct 2024 18:03:14 -0400
- To: Julian Reschke <julian.reschke@gmx.de>
- Cc: ietf-http-wg@w3.org
- Message-ID: <CAF3KT4S8vt44D9ooZ4i1R3ntQU6V1ij7PuJdqX6z2js4aGXuBw@mail.gmail.com>
Perhaps you should use both. Much like a regular web server if we have the resource we return it, if we don't have it, but know where it is we send a 3xx. If we don't have it and don't have any known address for it, then we return a 404. On Wed, Oct 30, 2024 at 5:36 AM Julian Reschke <julian.reschke@gmx.de> wrote: > 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 > > -- --- *Josh Co*hen
Received on Thursday, 31 October 2024 22:03:35 UTC