Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果服务器不接受升级请求,应该使用什么http头?_Http_Http Headers - Fatal编程技术网

如果服务器不接受升级请求,应该使用什么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服务器通信,该服务器根本不知道升级,因此忽略了该字段。由于规范肯定不会声明所有旧服务器都不符合要求,因此允许忽略升级请求。