状态码101是WebSocket握手过程中的一个关键步骤,它标志着客户端和服务器之间已经成功建立了WebSocket连接。 这个状态码的出现意味着客户端和服务器可以开始通过WebSocket进行全双工通信,而无需再发送HTTP/HTTPS请求和响应。 与WebSocket状态码101相关的HTTP状态码的对比或关联: HTTP状态码100(Continue)通常用于指示客户端...
服务端返回客户端请求响应之后,客户端对这些字段会在客户端进行校验,如果|Sec-WebSocket-Accept|的值与客户端期望的值不一致、没有这个字段或者HTTP状态码不为101,那么连接不会被建立并且websocket数据帧不会发送。 握手成功之后就是发送websocket协议的数据过程,期间双方都可以主动发送数据,发送的数据包如下图所示: 图...
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat Linux下对应实现代码,注释在代码中。 int websocket_handshake(struct qsevent *ev) { char linebuf[128]; int index = 0; char sec_data[128] = ...
1、首先,101 状态码表示服务器已经理解了客户端的请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成这个请求; 2、然后,Sec-WebSocket-Accept这个则是经过服务器确认,并且加密过后的Sec-WebSocket-Key; 3、最后,Sec-WebSocket-Protocol则是表示最终使用的协议。 Sec-WebSocket-Accept的计算方法: 1、将Sec-Web...
服务器返回的响应中包含了状态码 101(Switching Protocols),还包括一些与 WebSocket 握手相关的头部字段,例如 Upgrade: websocket 和 Connection: Upgrade。一旦客户端收到带有状态码 101 的响应,说明握手成功,此时连接升级完成,浏览器与服务器之间的通信将升级到 WebSocket 协议。请求:响应:WebSocket 通信阶段:一...
服务端的握手响应和客户端的握手请求非常的类似。第一行是 HTTP状态行,状态码是101: HTTP/1.1 101 Switching Protocols 任何其他的非101表示 WebSocket 握手还没有结束,客户端需要使用原有的 HTTP 的方式去响应那些状态码。状态行之后,就是头字段。 Connection和Upgrade头字段完成了对 HTTP 的升级。Sec-WebSocket-Ac...
101 - 切换协议 102 - 处理将被继续执行 2xx成功 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。 200 - (成功)请求已成功,请求所希望的响应头或数据体将随此响应返回。 201 - (已创建)请求成功且服务器已创建了新的资源。。 202 - (已接受)服务器已接受了请求,但尚未对其进行处理。
Websocket返回200而不是Apache服务器返回的101 Websocket是一种在客户端和服务器之间实现双向通信的协议。它允许服务器主动向客户端推送数据,而不需要客户端发起请求。在使用Websocket时,客户端会发送一个特殊的握手请求给服务器,服务器会返回一个握手响应,其中包含状态码101。这个状态码表示服务器已经接受了Websocket连...
101 - 切换协议 102 - 处理将被继续执行 2xx成功 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。 200 - (成功)请求已成功,请求所希望的响应头或数据体将随此响应返回。 201 - (已创建)请求成功且服务器已创建了新的资源。。 202 - (已接受)服务器已接受了请求,但尚未对其进行处理。
由上图可见,在 TCP 三次握手后,客户端向服务端发起 HTTP GET 请求,服务端的响应码是 101(Switching Protocol),至此 WebSocket 握手完成。 下图是握手过程中的服务端响应报文: 可见,客户端和服务端协商使用扩展“permessage-deflate”,也就是对每条消息使用 deflate 压缩。