如果服务器不接受升级请求,应该使用什么http头?
如果客户端希望协商协议中的更改,它可以通过如果服务器不接受升级请求,应该使用什么http头?,http,http-headers,Http,Http Headers,如果客户端希望协商协议中的更改,它可以通过upgradehttp头进行协商,可能类似于: Upgrade: TLS/1.0 HTTP/1.1 101 Switching Protocols Upgrade: TLS/1.0, HTTP/1.1 如果服务器愿意升级,它会以101状态代码和upgrade头响应,可能类似于: Upgrade: TLS/1.0 HTTP/1.1 101 Switching Protocols Upgrade: TLS/1.0, HTTP/1.1 但是,如
upgrade
http头进行协商,可能类似于:
Upgrade: TLS/1.0
HTTP/1.1 101 Switching Protocols
Upgrade: TLS/1.0, HTTP/1.1
如果服务器愿意升级,它会以101状态代码和upgrade
头响应,可能类似于:
Upgrade: TLS/1.0
HTTP/1.1 101 Switching Protocols
Upgrade: TLS/1.0, HTTP/1.1
但是,如果服务器不愿意或无法升级怎么办?它回复的状态码是什么?它会发送什么标题?它会忽略升级请求,并做出响应,就像请求中不存在升级
字段一样,因此会返回请求的资源。这是规范所说的,浏览器倾向于做什么,还是什么?@james.garriss这是规范所说的,也是符合规范的服务器所做的。不知道为什么浏览器在这里是相关的,因为这是关于服务器行为的。我发现了另一个文档,RFC2817,它更清楚。它说(在3.1中),“在这种情况下,服务器可能会正常响应清除HTTP操作,或者切换到安全操作。”但是这个规范是关于升级到TLS的,所以我不确定它是否适用于所有升级。服务器要么升级,并在101消息中这样说,要么不升级。如果没有,它将按原样响应请求。我认为这一点非常清楚。这样想:客户端可能正在与一个HTTP 1.0服务器通信,该服务器根本不知道升级,因此忽略了该字段。由于规范肯定不会声明所有旧服务器都不符合要求,因此允许忽略升级请求。