INDEX
关于101 Switching Protocols
101 Switching Protocols的概述
表示协议切换的HTTP状态码 | ||
101 Switching Protocols 概述 101 Switching Protocols 是一个HTTP状态码,用于通知客户端服务器正在根据客户端的请求切换通信协议。当客户端使用 |
||
含义 服务器已接受请求并切换到指定的协议。 |
101 Switching Protocols在什么情况下返回?
- 当客户端发送包含
Upgrade
头部的请求时 - 当服务器支持并同意协议切换时
- 当从HTTP切换到其他协议(如WebSocket或HTTP/2)时
101 Switching Protocols的示例
从HTTP切换到WebSocket
GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade
响应示例:
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade
解释: 当客户端使用Upgrade
头部请求切换到WebSocket,并且服务器同意该请求时,会返回101状态码。之后的通信将使用WebSocket协议进行。
从HTTP切换到HTTP/2
GET / HTTP/1.1 Host: example.com Upgrade: h2c Connection: Upgrade
响应示例:
HTTP/1.1 101 Switching Protocols Upgrade: h2c Connection: Upgrade
解释: 当客户端请求从HTTP/1.1切换到HTTP/2,并且服务器同意切换时,会返回101状态码。这种切换仅在客户端和服务器都支持该协议时有效。
注意事项
返回101 Switching Protocols时需要注意的事项:
- 仔细评估客户端请求
需要确保服务器支持客户端请求的协议切换。 - 考虑安全风险
协议切换(特别是切换到WebSocket)可能带来潜在的安全风险,需要谨慎配置。
与相关HTTP状态码的比较
以下是与101 Switching Protocols相关的HTTP状态码:
- 200 OK: 当请求成功处理且无需更改通信协议时使用。
- 426 Upgrade Required: 当客户端必须升级到服务器支持的协议才能完成请求时返回。
理解这些差异可以确保正确使用101状态码。