010*_*101 17 http websocket http-headers
我有点困惑.有人可以向我解释这两种反应状态之间的区别是什么:
HTTP/1.1 101 Web Socket Protocol Handshake
HTTP/1.1 101 Switching Protocols
Run Code Online (Sandbox Code Playgroud)
我得到的回应是否重要?
Rem*_*eau 21
没有任何区别.重要的是101指示握手正在进行的响应代码.这在RFC 6455中定义:
客户端的主要行遵循请求行格式.服务器的前导线遵循Status-Line格式.Request-Line和Status-Line产生在[RFC2616]中定义.
...
来自服务器的握手比客户端握手简单得多. 第一行是HTTP状态行,状态代码为101:
HTTP/1.1 101交换协议
除101之外的任何状态代码表示WebSocket握手尚未完成,并且HTTP的语义仍然适用.
根据RFC 2616Status-Line,服务器可以使用它想要的任何文本:
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
...
Status-Code元素是尝试理解和满足请求的3位整数结果代码.这些代码在第10节中完全定义.原因 - 短语旨在提供状态代码的简短文本描述.Status-Code旨在供自动机使用,Reason-Phrase适用于人类用户.客户端不需要检查或显示Reason-Phrase.
Switching Protocols恰好是RFC 6455中使用的示例,但这不是必需的.