b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

websocket客户端_websocket c客户端_websocket session id(2)

电脑杂谈  发布时间:2017-03-14 21:00:07  来源:网络整理

0D 0A 0D 0A, 也就是用"\r\n\r\n"收尾, 这和http头没什么区别. 转换成字符串就是:

GET / HTTP/1.1  
Upgrade: websocket 
Connection: Upgrade 
Host: 192.168.8.128:1300 
Origin: null 
Pragma: no-cache 
Cache-Control: no-cache 
Sec-WebSocket-Key: d359Fdo6omyqfxyYF7Yacw== 
Sec-WebSocket-Version: 13 
Sec-WebSocket-Extensions: x-webkit-deflate-frame 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1653.0 Safari/537.36 

其中有一对重要的kv, 就是Sec-WebSocket-Key: d359Fdo6omyqfxyYF7Yacw==, 看上去是一个base64编码后的结果, 服务器需要对这个sec-key作一些处理, 并返回握手响应, 这个处理是:

byte[]sha=sha1(("d359Fdo6omyqfxyYF7Yacw=="+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").getBytes());

System.out.println(newString(Base64.getEncoder().encode(sha)));

也就是原封不动的拿着这个sec-key和另一个神奇的字符串"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"相连, 再经过sha1摘要

算法处理, 最后再经过base64编码输出即可, 上面的输出结果应该是: pLO2KC7b5t0TZl1E6A3sqJ6EzU4=

服务器在收到握手请求后, 如果愿意提供服务, 则返回一个握手响应, 如下:

HTTP/1.1101SwitchingProtocols

Connection:Upgrade

Upgrade:WebSocket

Sec-WebSocket-Accept:pLO2KC7b5t0TZl1E6A3sqJ6EzU4=

遵循http的规则, 字节流上一样是要以"\r\n\r\n"收尾.

二. 数据帧

rfc6455上叫做非控制帧, 除了非控制帧之外, 就是控制帧. 包括connection close, ping, pong等帧, 这里只讲非控制帧, 也就是数据帧.

数据帧从长度上可以分为三种. 帧中的静荷数据(payload data)长度小于0x7E的为小帧, 静荷数据长度 >=0x7E又<=0x10000的为中帧,

再长的叫大帧.

数据帧从类型上暂时可以分为两种, 文本帧和二进制帧.

例子:

a). 一个从客户端发向服务端的小帧.

82B06AF7C6300AD9C634D41878C16EF5..j..0...4..x.n.

C6306CD5CC102387AF483CA29C6401.0l...#..H<..d..


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-37527-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...