一、Websocket是一种持久化连接,先通过http协议建立一次连接,在连接中通过
websocket协议持续和服务器进行交互,同时该协议存在被动性特点,服务端可以主动
通知客户端下面是具体抓包情况,可以看出在Websocket连接之后,向服务器发送请求
无需再次建立http连接
1、简单的从接口层分析下Websocket和http的区别
Headers:Upgrade和Connection表明了请求类型,Sec-WebSocket—主要携带了
websocket一些参数,同样的服务器返回的类型也是如此
很明显的可以看出在此次http连接中101状态下,通过websocket可以互相通信
二、编写jmeter脚本并测试
1、下载websocket依赖的jar,放到/apache-jmeter-3.2/lib/ext目录下下载地址:http://download.csdn.net/download/wpi66/9632930
2、打开WebSocket Sampler2、编写脚本
ip:测试服务器域名
Streaming Connection:请求之后是否保持连接,勾选之后在同一次http内继续会话
protocol:ws/wss,wss是在websocket连接之后进行加密传输,根据实际来写
port Number:ws80,wss443,跟http和https道理一样
path:写请求的具体url
request data:通过charles抓包上面可以看出来,每次客户端请求的内容
利用循环控制器会发现,只需建立一次链接,后面请求内容会在本次连接中继续
三、简单比较下ws/wss协议,利用wireshark抓包分析
当websocket为ws协议时候,执行接口进行抓包如下开始http三次握手,再请求http
请求,websocket可以看出是明文传输的
当websocket为wss协议时候,执行接口进行抓包如下开始http三次握手,再进行https连接,可以看出已经使用TLSv1.2进行加密传输