websocket 如何携带header
时间: 2023-10-18 09:32:11 浏览: 340
springboot + jwt + websocket + 拦截
5星 · 资源好评率100%
WebSocket在建立连接时,会通过HTTP协议发送一个握手请求(handshake request)。这个握手请求中可以包含一些HTTP头信息,例如Cookie、Authorization等。这些HTTP头信息可以通过WebSocket的握手请求头(handshake request header)传递给服务器。
WebSocket的握手请求头包含以下字段:
1. Host:必选字段,表示服务器的主机名和端口号。
2. Upgrade:必选字段,表示要升级的协议,对于WebSocket请求,该值必须为“websocket”。
3. Connection:必选字段,表示当前连接类型,对于WebSocket请求,该值必须为“Upgrade”。
4. Sec-WebSocket-Key:必选字段,表示用于计算握手响应头Sec-WebSocket-Accept的随机字符串。
5. Sec-WebSocket-Version:必选字段,表示使用的WebSocket协议版本号,目前为13。
6. 其他HTTP头信息:可选字段,可以包含一些HTTP头信息,例如Cookie、Authorization等。
例如,以下是一个包含自定义HTTP头信息的WebSocket握手请求:
```
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Version: 13
Cookie: sessionId=1234567890
Authorization: Bearer abcdefghijklmnopqrstuvwxyz
```
在这个例子中,WebSocket的握手请求头中包含了两个自定义HTTP头信息:Cookie和Authorization。这些HTTP头信息可以在服务器端通过解析握手请求头来获取。
阅读全文