💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
## http * 在单个 TCP 连接上进行**全双工通讯的协议** ## websocket * 在单个 TCP 连接上进行**全双工通讯的协议** * 默认端口也是 80 和 443 * 握手阶段采用 HTTP 协议 * 更好的二进制支持 ## 握手阶段 客户端: * 请求的方法必须为`GET`,且`HTTP`版本必须是**1.1** * 请求必须包含`Host`头 * 请求必须包含`Upgrade: websocket`头,值必须为`websocket` * 请求必须包含`Sec-WebSocket-Key`头 * 请求必须包含`Sec-WebSocket-Version: 13`头,值必须为`13` * 请求必须包含`Origin`头 ``` GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Origin: http://example.com Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13 ``` 服务端: * 如果请求是`HTTP/1.1`或更高的`GET`请求,包含`REQUEST-URI`则应正确地按照文档要求进行解析. * 必须验证 Host 字段 * `Upgrade`头字段值必须是大小写不敏感的`websocket` * `Sec-WebSocket-key`d 解码时长度为`16Byte` * `Sec-WebSocket-Version`值必须是`13` * `Host`如果没有被包含,则链接不应该被解释为浏览器发起的行为 * `Sec-WebSocket-Protocol`中列出的客户端请求的子协议,服务端应按照优先顺序排列,响应 * 任选的其他字段 ``` HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= // 可选的头,表示允许的通过的客户端 Sec-WebSocket-Protocol: chat ``` ## 数据传输 客户端发送给服务器:**客户端发送给服务端的数据是经过掩码处理的** 服务器推送给客户端: