Re: 426 Upgrade: HTTP/3.0

Hey,

The example is odd but it is also correct as an example of _syntax_ and intent. In other words if a request needs an upgrade on the same connection, this status code could be used with an Upgrade header. It just so happens that there is not a suitable version to upgrade to in practice.

There are other edge cases too. The use of Upgrade header requires "Connection: upgrade" too, and that is not allow in HTTP/2 and HTTP/3.

Personally I'm fine living with this quirk/jank given the mechanism is effectively not usable in deployment of RFC HTTP.

Cheers
Lucas

On Mon, Jul 7, 2025, at 22:15, Ben Schwartz wrote:
> I agree, this is strange enough to be worth correcting in some fashion.
> 
> --Ben
> 
> 
> *From:* Jan Schaumann <jschauma@netmeister.org>
> *Sent:* Tuesday, July 1, 2025 2:14 PM
> *To:* ietf-http-wg@w3.org <ietf-http-wg@w3.org>
> *Subject:* 426 Upgrade: HTTP/3.0
>  
> 
> 
> Hi,
> 
> I just noticed that RFC9110 says in section 15.5.22
> https://urldefense.com/v3/__https://httpwg.org/specs/rfc9110.html*status.426__;Iw!!Bt8RZUm9aw!_hTbaQivdJDCLhL-sh44l4WDIxbTmjS_ZpWmImxfxOeNGr-qfiHOPG8-mGyTYAdQL0bM1jfSo2UbNVGX$ 
> 
> "Example:
> 
> HTTP/1.1 426 Upgrade Required
> Upgrade: HTTP/3.0
> "
> 
> Seeking an upgrade to H3 would entail a switch in
> connection protocol, but further down in section 7.8,
> RFC9110 also explicitly says
> 
> "The Upgrade header field only applies to switching
> protocols on top of the existing connection; it cannot
> be used to switch the underlying connection
> (transport) protocol, nor to switch the existing
> communication to a different connection. For those
> purposes, it is more appropriate to use a 3xx
> (Redirection) response (Section 15.4)."
> 
> 
> So these two parts seem to contradict each other, and
> the 'Upgrade' section should use a different example?
> 
> -Jan
> 

Received on Monday, 7 July 2025 21:31:28 UTC