Websocket

websocket和http都是基于tcp传输协议的应用层协议。websocket和http是并列的关系。都用于服务器和浏览器之间的通信。

websocket一次握手,浏览器和服务器建立好tcp连接之后,就会向服务器发送数据包,服务器返回response数据包,websocket握手完成,就可以保持长连接。
浏览器发送的数据包中有几个字段需要特别注意。

  • Upgrade:websocket。表示浏览器要和服务器建立websocket连接
  • Sec-WebSocket-Key:XXX。这是浏览器经过Base64加密后的密钥,用来和response里面的Sec-WebSocket-Accept进行比对验证

服务器收到浏览器发送数据包,就会返回response数据包

  • Sec-WebSocket-Accept:xxx。这是服务端根据浏览器发送的Sec-WebSocket-Key加密后的密钥。

至此websocket握手完成,建立好了连接,并且此连接可以一直保持。

websocket的出现就是为了解决http的以下缺点。
http的缺点:

  • http通信只能由浏览器发起,浏览器请求数据,服务器返回数据,断开连接。
  • 浏览器每次向服务器请求数据,都会重新和服务器建立新连接,造成服务器的资源浪费。
  • http1.1之后就支持长连接了,设置一个time_out,如果time_out时间内重新请求会刷新计时,time_out内没有新请求,就会关闭tcp连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值