101

Switching Protocols

官方
传输协议在客户的要求下被改变

101状态代码的一般解释

想象一下,您在一家餐厅里想点一杯饮料。服务员走过来问您要什么。您说:"我想要一杯水,但如果有新鲜橙汁的话,我更喜欢那杯"。在这里,你基本上给了服务员两个选择,让他知道你是灵活的。

当网络浏览器或其他客户端工具向服务器发送请求时,客户端可能会建议切换到不同的通信协议,因为它认为其他协议会更有效或更合适。例如,最初使用 HTTP 连接的客户端可能会建议切换到 WebSockets,以便为实时数据提供始终开放的连接。

当服务器接受这一建议时,它会响应状态代码 101 Switching Protocols,告诉客户端:"好的!让我们切换协议。从这时起,客户端和服务器之间的通信将通过商定的新协议继续进行。

HTTP状态代码101的规范

101 Switching Protocols状态代码表明服务器理解并愿意遵守客户通过升级头字段提出的改变该连接上正在使用的应用协议的请求。 服务器必须在响应中生成一个升级头字段,表明在结束101 Switching Protocols响应的空行之后将立即切换到哪个(些)协议。假设服务器只在有利的情况下同意切换协议。 例如,切换到较新版本的HTTP可能比旧版本更有优势,而切换到实时、同步协议可能在交付使用此类功能的资源时更有优势。

来源/引自: 101 Switching Protocols HTTP状态代码由6.2.2的RFC7231部分指定。

如何用PHP抛出一个101状态代码?

要在一个网页上抛出HTTP状态代码101,可以使用PHP函数http_response_code。其语法如下: http_response_code(101) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

测试101 HTTP状态代码

为了能够在客户端显示HTTP状态代码(本例中为101 Switching Protocols)和其他信息,必须用F12打开开发控制台。然后导航到 "网络 "标签。现在可以打开页面,网站(例如index.php)应该在网络标签中可见。这必须被选中,然后必须选择Herder部分。然后,用户将看到以下结果:

状态代码 101 Switching Protocols
概述
URL: https://http-statuscode.com/errorCodeExample.php?code=101
状况: 101 Switching Protocols
那些: Network
IP地址: XX.XX.XX.XX
状态代码 101 Switching Protocols

101状态代码的浏览器兼容性

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

编程语言中的常量

HttpStatusCode.SwitchingProtocols
http.StatusSwitchingProtocols
Response::HTTP_SWITCHING_PROTOCOLS
httplib.SWITCHING_PROTOCOLS
http.client.SWITCHING_PROTOCOLS
http.HTTPStatus.SWITCHING_PROTOCOLS
:switching_protocols
HttpServletResponse.SC_SWITCHING_PROTOCOLS 
作者: Tony Brüser
作者: Tony Brüser

Tony Brüser 是一位热衷于 HTTP 状态代码的网络开发人员。

LinkedInGitHub