Re: Fwd: New Version Notification for draft-toomim-httpbis-versions-02.txt

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