首页 > 网页设计 > HTML5实战与剖析之WebSocket协议

HTML5实战与剖析之WebSocket协议

WebSocket协议是为了工作与现有的网络基础设施。作为这一设计原则的一部分,WebSocket连接的协议规范定义了开始其生命作为一个HTTP连接,保证与pre-WebSocket世界完全向后兼容。从HTTP协议切换WebSocket称为WebSocket握手。

  浏览器发送一个请求到服务器,这表明它想开关从HTTP WebSocket协议。客户端通过升级标题表达的愿望:

[plain]

  1. GET ws://echo.websocket.org/?encoding=text HTTP/1.1  
  2. Origin: http://websocket.org   
  3. Cookie: __utma=99as   
  4. Connection: Upgrade  
  5. Host: echo.websocket.org  
  6. Sec-WebSocket-Key: uRovscZjNol/umbTt5uKmw==   
  7. Upgrade: websocket   
  8. Sec-WebSocket-Version: 13  

如果服务器理解WebSocket协议,它通过升级头同意协议切换。

[plain]

  1. HTTP/1.1 101 WebSocket Protocol Handshake   
  2. Date: Fri, 10 Feb 2012 17:38:18 GMT  
  3. Connection: Upgrade Server: Kaazing Gateway   
  4. Upgrade: WebSocket   
  5. Access-Control-Allow-Origin: http://websocket.org   
  6. Access-Control-Allow-Credentials: true   
  7. Sec-WebSocket-Accept: rLHCkw/SKsO9GAH/ZSFhBATDKrU=   
  8. Access-Control-Allow-Headers: content-type  

 

此时HTTP连接分解并取代了WebSocket连接在同一底层TCP / IP连接。WebSocket连接使用HTTP(80)和HTTPS端口一样(443),默认情况下。

  连接建立后,WebSocket数据帧可以发送客户机和服务器之间来回在全双工模式下。两种文本和二进制帧可以在两个方向同时发送。只有两个字节数据最小陷害。对于文本帧,每一帧始于0 x00字节,以0 xff字节结束,包含utf - 8数据。WebSocket文本框架使用一个终结者,而二进制帧使用前缀长度。


本文固定链接: http://www.devba.com/index.php/archives/5617.html | 开发吧

报歉!评论已关闭.