当前位置: 首页 > news >正文

大型网站制作流程郑州网约车租赁公司

大型网站制作流程,郑州网约车租赁公司,常州云计算网站建设,免费windows10云主机下载一、前言 上一篇 WebSocket实战之一 讲了WebSocket一个极简例子和基础的API的介绍,这一篇来分析一下WebSocket的协议,学习网络协议最好的方式就是抓包分析一下什么就都明白了。 二、WebSocket协议 本想盗一张网络图,后来想想不太好&#x…

一、前言

上一篇  WebSocket实战之一 讲了WebSocket一个极简例子和基础的API的介绍,这一篇来分析一下WebSocket的协议,学习网络协议最好的方式就是抓包分析一下什么就都明白了。

二、WebSocket协议

本想盗一张网络图,后来想想不太好,还是自己画了一张。

1、WebSocket握手

WebSocket握手是用一个特殊的HTTP请求和响应来完成,客户端握手请求头会携带Upgrade:websocket,表示请求将协议升级为WebSocket协议。

响应码 101 表示同意将协议进行升级,Sec-WebSocket-Accept是从请求的Sec-WebSocket-key继承而来,包含一个特殊的响应值,必须和客户端预期精确匹配才能握手成功。Sec-WebSocket-Accept=Base64(SHA1(Sec-WebSocket-key+KEY_SUFFIX))。

2、发送数据

WebSocket握手成功连接打开后,客户端和服务端就可以在任何时候相互发送数据,在昨天简单例子中客户端open事件加上发送信息,在浏览器可以看到发送的消息和接收到的消息。这就是和HTTP最本质的区别,只要握手完成后无论哪一端想发送数据就发送,而不是像HTTP那样服务端一定要等客户端的请求然后做出响应。

将前一节例子客户端也改成每隔5秒发送一条数据。

在浏览器控制台Message标签可以查看Send(向上箭头)和Receive(向下箭头)的数据,全双工相互发送。

3、关闭握手

终止连接的端点发送一个数字代码以及关闭原因字符串,关闭握手能正常关闭连接,使应用程序可以区分出是有意关闭还是意外终止连接。

三、抓包分析

IP:115.192.133.59 WebSocket客户端

IP:172.16.79.224   WebSocket服务端(内网IP)

为了便于查看数据包内容,代码稍微调整,将客户端服务端持续发送数据去掉

服务端改为接连发送三条数据

客户端改为不发送消息,而只在收到消息后关闭websocket

1、【1、2、3】开始三个包就是普通的TCP三次握手。

2、【4】第4个包是请求头携带了Upgrade:websocket的普通HTTP请求。

3、【5】服务端一个TCP响应包,【6】服务端一个HTTP响应包,101 Switching Protocols告诉客户端协议进行升级。

4、【7、8、9】第7、8、9个包,服务端向客户端以WebSocket协议发送了三个包,WebSocket以帧格式发送消息内容

  • Fin:1位,用来表明这是一个消息的最后的消息片断,当然第一个消息片断也可能是最后的一个消息片断.

  • RSV1, RSV2, RSV3: 分别都是1位,如果双方之间没有约定自定义协议,那么这几位的值都必须为0,否则必须断掉WebSocket连接.

  • Opcode:4位操作码,定义有效负载数据,如果收到了一个未知的操作码,连接也必须断掉,以下是定义的操作码.

  • Payload length: 传输数据的长度,以字节的形式表示.

  • Payload data: 负载数据,这一帧里传的数据是 【b】.

5、【10、11、12、13】客户端向服务端发送4个TCP应答包,应该是对收到消息的一个应答

6、【14】客户端调用close方法关闭websocket连接,可以看到在关闭之前服务端包已经发出来了。

7、【15】服务端对客户端的close进行了应答,关闭了连接。

8、【16、17、18、19、20】 TCP的4次挥手,另外一个包没搞清楚是做什么的。

四、总结

WebSocket是基于TCP的,与HTTP同样也是应用层协议,但WebSocket的首次握手是依赖于HTTP协议,握手成功协议升级为WebSocket,然后就是长连接可以相互一直发送消息而不再是HTTP的那种请求/响应机制,另外可以看到客户端的端口在开始随机用了一个值是52914后,在关闭之前一直会用同一端口,这样才能找得到,IP用来找机器,端口用来找应用。

注:下一篇再介绍一下心跳机制以及断开重连机制。

http://www.yayakq.cn/news/232386/

相关文章:

  • 贵州省城乡建设厅网站首页做一个小说网站需要多少钱
  • 网站提交收录软件wordpress微信登录的插件
  • 网站设计软件培训怎么样个人的网站
  • 哪个学校设有网站开发专业璧山集团网站建设
  • 浙江省火电建设公司网站网站开发一般用什么工具
  • 信誉好的集团网站建设山东城乡建设厅网站
  • 偃师网站网站运营方案ppt
  • 网站建设的什么是网站建设的第一阶段网站建设大神级公司
  • 高校门户网站建设需要多少钱做企业网站一定要企业邮箱嘛
  • 公司网站开发公司域名注册好怎么建设网站
  • 丰县住房和城乡建设局网站虹桥做网站
  • 广西美丽乡村建设网站网站建设参考
  • 优质院校 建设网站怎么做英文的网站
  • 网站建设 豫icp备昌宁县住房和城乡建设网站
  • 网站设计 品牌设计马鞍山市网站建设服务有限公司
  • 1网站建设哪家网站设计公司好
  • 大连网站建设多少钱网站上线后想修改
  • 常见的网站结构有哪些做一个企业网站需要多少钱
  • WordPress短码生成器代码优化
  • 网站开发兼职合同66公里智慧门店管理系统
  • 电商网站开发平台实验oa系统软件
  • 外贸网站如何做seo上海网站建设制作公
  • 前端和网站建设的区别平谷网站建设服务
  • 凡科做网站是否安全做爰网站名称
  • 做网站的叫什么软件贵阳网站建设技术支持
  • 上海网站建设知识 博客wordpress文件上传目录修改
  • 北京seo网站设计开网站要多少钱
  • 青岛制作企业网站公司制度建设的意义
  • 网站建没有前景中国四大软件外包公司是哪四个
  • 青岛做网站建设价格.tel域名不可以做网站域名吗