101 Switching Protocols: 表示切换协议的HTTP状态代码

スポンサーリンク
スポンサーリンク

关于101 Switching Protocols

101 Switching Protocols的概述

表示协议切换的HTTP状态码

101 Switching Protocols

概述 101 Switching Protocols 是一个HTTP状态码,用于通知客户端服务器正在根据客户端的请求切换通信协议。当客户端使用Upgrade头部请求切换到新的协议并且服务器同意时,会返回该状态码。

含义 服务器已接受请求并切换到指定的协议。

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状态码。