What is an http upgrade?

后端 未结 1 798
后悔当初
后悔当初 2020-12-14 17:08

This is one of the Node http events. Did the obvious Google Searches, didn\'t find much. What is it exactly?

相关标签:
1条回答
  • 2020-12-14 17:22

    HTTP Upgrade is used to indicate a preference or requirement to switch to a different version of HTTP or to another protocol, if possible:

    The Upgrade general-header allows the client to specify what additional communication protocols it supports and would like to use if the server finds it appropriate to switch protocols. The server MUST use the Upgrade header field within a 101 (Switching Protocols) response to indicate which protocol(s) are being switched.

       Upgrade        = "Upgrade" ":" 1#product
    

    For example,

       Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
    

    The Upgrade header field is intended to provide a simple mechanism for transition from HTTP/1.1 to some other, incompatible protocol.

    According to the IANA register, there are only 3 registered mentions of it (including one in the HTTP specification itself).

    The other two are for:

    • Upgrading to TLS Within HTTP/1.1 (almost never used, not to be confused with HTTP over TLS, which defines HTTPS as widely used). This upgrade allows for a similar mechanism to STARTTLS in other protocols (e.g. LDAP, SMTP, ...) so as to be able to switch to TLS on the same port as the plain connection, after exchanging some of the application protocol messages, as opposed to having the entire HTTP exchange on top of SSL/TLS without it needing to know it's on top of TLS (the way HTTPS works).

    • Upgrading to WebSockets (still a draft).

    0 讨论(0)
提交回复
热议问题