proxy & ENABLE_UPGRADE SETTINGS | Re: [hybi] Fwd: New Version Notification for draft-mcmanus-httpbis-h2-websockets-01.txt

>     SETTINGS   ENABLE_UPGRADE (or ENABLE_CONNECT_PROTOCOL) from server
>     end of connection to client end of connection tells on that case
> 
>     that server end of connection understand
>              :upgrade
>     pseudo header.
> 
>     It tells nothing about that what is behind of that server end of
>     connection.
> 
>     Only after request is sent, http response tells if that authority
>     and path supporting that upgrade. Error is reported as http status code.
> 
>     I see that reverse proxy can send SETTINGS   ENABLE_UPGRADE (or
>     ENABLE_CONNECT_PROTOCOL)
>     even when it does not konw if next hop supports that. Support
>     of next hop or origin server is reported by when that protocol
>     is triedm failure is reported on http status code.

Amos Jeffries <squid3@treenet.co.nz> wrote:

> A proxy that sends that ENABLE_UPGRADE is guaranteeing that it *will* 
> service the upgrade and handle the resulting traffic syntax. By itself 
> if necessary.

I ligthly disagreed.

ENABLE_UPGRADE just tells that :upgrade is not considered to
be error which causes stream error of type PROTOCOL_ERROR
emitted and tells possible full duplex handling (as was on
:method = CONNECT).

You can also try Upgrade: on HTTP/1.1 and server or proxy
have permission to ignore it.   Upgrade is just suggestion
from client.  

In that case request is processed as upgrade is not done.
It can still succeed (without protocol change) or fail
as any http request can.


> In the general case a proxy that negotiates a SETTING it cannot 
> guarantee support for is broken. It must instead negotiate a SETTINGS 
> without the feature and re-negotiate with another SETTINGS later when it 
> has better information.

/ Kari Hurtta

Received on Saturday, 11 November 2017 09:20:17 UTC