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

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