前端(例如,网站)如何知道连接的HTTP调用版本?
当客户端进行API调用时,它如何知道它是HTTP 1.1,HTTP 2还是HTTPS?
我不清楚这些实际上是如何相互联系的。
答案 0 :(得分:4)
HTTP 1.1旨在在很大程度上向后兼容HTTP 1.0。如果HTTP 1.1客户端向HTTP 1.0服务器发出请求,则会忽略额外的标头。
HTTP 2有clear instructions,如果服务器支持连接,则需要通过HTTP 1.1启动连接,并请求升级到2。
HTTPS不是HTTP的一个版本。它是HTTP over SSL。 如果网址具有HTTPS方案,则客户端将与服务器建立SSL连接,然后通过该SSL连接与常规HTTP通信。
答案 1 :(得分:0)
客户端在请求中指定HTTP版本,如下所示:
$ telnet cnn.com 80
Trying 157.166.226.25...
Connected to cnn.com.
Escape character is '^]'.
GET / HTTP/1.1
Host: cnn.com
HTTP版本2写为HTTP/2
,但这是一个二进制协议,我不知道如何在此处说明。无论如何,服务器都会看到版本并相应地运行。
对于HTTP与HTTPS,这是网址的一部分(http:
与https:
)。浏览器(或其他客户端)使用明文HTTP或TLS包装的HTTP,具体取决于请求中指定的协议。