{site_name}

{site_name}

🌜 搜索

HTTP中的101 Switching Protocols是一个状态码,表示服务

前端 𝄐 0
HTTP中的101 Switching Protocols是一个状态码,表示服务器已经理解了客户端请求中的 Upgrade 头信息,并且将要切换到不同的协议来完成这个请求。

当客户端请求切换协议时,它会在请求头部包含一个 Upgrade 字段和一个 Connection 字段。Upgrade 字段指定了要切换的协议名称,而 Connection 字段告诉服务器是否应该关闭连接或保持连接打开。

一些常见的用法包括:

1. WebSockets:HTTP 101状态码可以用于WebSockets协议。当客户端发送包含 WebSocket 升级头部的 HTTP 请求时,服务器可以返回 HTTP 101 状态码并包含 WebSocket 协议标头,从而完成协议的升级。

例如,当一个客户端想要使用WebSocket与服务器通信时,它可能发送以下HTTP请求:


GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13


如果服务器支持WebSocket,它将响应如下:


HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=


2. HTTP/2:HTTP 101状态码还可以用于升级到HTTP/2协议。在这种情况下,客户端可以通过发送包含“Upgrade”和“Connection”头的HTTP/1.1请求来要求升级到HTTP/2。

例如,当一个客户端想要使用HTTP/2与服务器通信时,它可能发送以下HTTP请求:


GET /index.html HTTP/1.1
Host: example.com
Connection: Upgrade, HTTP2-Settings
Upgrade: h2c
HTTP2-Settings: <base64url encoding of HTTP/2 SETTINGS payload>


如果服务器支持HTTP/2,它将响应如下:


HTTP/1.1 101 Switching Protocols
Connection: Upgrade
Upgrade: h2c