WebSocket
相对于HTTP这种非持久的协议来说,Websocket是一个持久的协议
1. 特点
- Websocket的握手部分是和http一样的,或者说借用了HTTP的协议来握手
- 在websocket首次连接的报文中加入了两个不同于普通http的首部字段
- 全双工通信
- 不用每次交换header等信息
请求报文
GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com
upgrade表示升级协议(切换协议),connection连接方式为升级后协议
Sec-WebSocket-Key: 一个Base64 encode的值(由浏览器随机生成)
Sec-WebSocket-Protocol: 由用户自定义,区分同一个URL下面的不同服务
Sec-WebSocket-Version: ws版本(早期ws的实现版本不止一个)
响应报文
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accep