WebSocket
2014-05-04 23:06
169 查看
原创地址:/article/5259541.html
转载请注明出处
作为初学者,知道WebSocket 可以实现Web 的双向通讯就足够了。
想要知其然,知其所以然,就必须去看看相应的协议规定。因为WebSocket 是个比较新的概念,可以看到有从00 到17 到RFC 6455 的版本。http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00 最新的目前是RFC 6455 的版本。http://tools.ietf.org/html/rfc6455
虽然说英文是必须的,但是作为快速入门的材料,有中文版本自然是极好的。这里是中文版的文档翻译地址。https://github.com/wen866595/open-doc/blob/master/rfc/RFC6455-cn.md。
请求如下所示:
---------------------------------------------------------------------------------------------------------------------------
服务器端处理过程:
请求头:
取值,字符串拼接后得到:
最后的结果值作为响应头
---------------------------------------------------------------------------------------------------------------------------
258EAFA5-E914-47DA-95CA-C5AB0DC85B11 是一个神奇的GUID.
转载请注明出处
作为初学者,知道WebSocket 可以实现Web 的双向通讯就足够了。
想要知其然,知其所以然,就必须去看看相应的协议规定。因为WebSocket 是个比较新的概念,可以看到有从00 到17 到RFC 6455 的版本。http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00 最新的目前是RFC 6455 的版本。http://tools.ietf.org/html/rfc6455
虽然说英文是必须的,但是作为快速入门的材料,有中文版本自然是极好的。这里是中文版的文档翻译地址。https://github.com/wen866595/open-doc/blob/master/rfc/RFC6455-cn.md。
请求如下所示:
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
---------------------------------------------------------------------------------------------------------------------------
服务器端处理过程:
请求头:
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
取值,字符串拼接后得到:
"dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
SHA-1后得到:
0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6 0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea
Base64后得到:
s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
最后的结果值作为响应头
Sec-WebSocket-Accept的值。
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
---------------------------------------------------------------------------------------------------------------------------
258EAFA5-E914-47DA-95CA-C5AB0DC85B11 是一个神奇的GUID.
相关文章推荐
- 文件上传(jspsmart实现)file和text表单同时提交的问题
- 23种设计模式
- 用正交表设计测试用例
- 表分区及索引分区
- ListBox的使用
- FragmentTabHost切换Fragment时避免重复加载UI
- 思维训练 之 hdu 4545
- Flex文件读取报错
- Flex文件读取报错
- Weblogic下启用Gzip压缩
- 思维训练 之 hdu 4545
- java调用mysql存储过程
- <PY><core python programming笔记>C7 字典和集合类型
- 基于ocfs2内核代码的个人理解(一)
- 【小技巧之二】破解MD5的网站
- cout顺序,i++和++i
- Hibernate复习(一)ORM
- 现代社会奇葩家庭
- Java中IO流知识点总结
- Exercice_3.10_去掉string对象中的标点符号