1×× 信息
101 Switching Protocols 交换协议
服务器通过 Upgrade 标头字段1了解并愿意遵守客户端的请求,以更改在此连接上使用的应用程序协议。
服务器必须在响应中生成一个 Upgrade 头字段,指示在终止 101 响应的空行之后将立即切换到哪个协议。.
假设服务器只会在有利的情况下同意切换协议。例如,切换到新版本的 HTTP 可能比旧版本更有优势,而在交付使用此类功能的资源时,切换到实时同步协议可能更有利。
典型例子就是Websocket连接握手时,服务器先返回 http 101 状态码,将http协议转换为websocket协议 。
- 1 Upgrade RFC7230 Section 6.7
- Source: RFC7231 Section 6.2.2
101 代码参考
Rails HTTP Status Symbol :switching_protocols
Go HTTP Status Constant http.StatusSwitchingProtocols
Symfony HTTP Status Constant Response::HTTP_SWITCHING_PROTOCOLS
Python2 HTTP Status Constant httplib.SWITCHING_PROTOCOLS
Python3+ HTTP Status Constant http.client.SWITCHING_PROTOCOLS
Python3.5+ HTTP Status Constant http.HTTPStatus.SWITCHING_PROTOCOLS