Upgrade
Used by the client to indicate the supported protocols to the server.
Fastly reads this header from requests. It is defined by an external standard.
The Upgrade
header field is intended to provide a simple mechanism for transitioning from HTTP/1.1 to some other protocol on the same connection. A client MAY send a list of protocols in the Upgrade
header field of a request to invite the server to switch to one or more of those protocols, in order of descending preference, before sending the final response. A server MAY ignore a received Upgrade
header field if it wishes to continue using the current protocol on that connection. Upgrade
cannot be used to insist on a protocol change.
A server that sends a 101 (Switching Protocols)
response MUST send an Upgrade
header field to indicate the new protocol(s) to which the connection is being switched; if multiple protocol layers are being switched, the sender MUST list the protocols in layer-ascending order. A server MUST NOT switch to a protocol that was not indicated by the client in the corresponding request's Upgrade
header field. A server MAY choose to ignore the order of preference indicated by the client and select the new protocol(s) based on other factors, such as the nature of the request or the current load on the server.
A server that sends a 426 (Upgrade Required)
response MUST send an Upgrade
header field to indicate the acceptable protocols, in order of descending preference.