打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
webSocket和http的区别

1 什么是webSocket

webSocket实现了浏览器与服务器的全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的,它本质上是一个基于TCP的协议

2 websocket和http区别

(1)相同点

  • 都是基于TCP协议,都是可靠性传输协议
  • 都是应用层协议

(2)不同点

  • http是单向的,websocket可以双向发送和接受信息
  • websocket需要浏览器和服务器握手建立连接,http是浏览器发起向服务器的连接,服务器预先不知道这个连接

(3)联系
websocket在建立握手时,数据是通过http传输的,但是建立之后,在真正传输时候是不需要http协议的

3 websocket解决的问题

(1)http存在的问题

  • http是无状态协议,每一次通信完成,服务端都不知道下一次的客户端是谁。需要每次知道对方是谁才进行相应的响应,因此不利于实时通讯
  • http采用一次请求一次响应,每次请求和响应都要携带大量请求头,可能导致效率低下
  • 不能服务端主动发送

(2)长轮询
基于上述问题,解决办法是客户端发起长轮询,如果服务端的数据没有发生变更,会保持连接,知道客户端数据发送变化或等待一定时间超时才会返回

存在问题: 推送延迟,服务端数据变更,才会结束长轮询,才会返回响应给客户端

(3)websocket的改进
一旦websocket连接建立以后,后续数据都以帧序列的形式传输。客户端断开websocket连接或服务端中断连接前,需要客户端和服务端重新发起请求。

websocket的特点:

  • 建立websocket后,客户端和服务端是完全平等的,可以互相主动请求;而http的长连接是基于http,是传统的客户端对服务端发起的请求
  • http长连接中,每次数据交换除了真正的数据以外,还有携带的请求头信息。websocket协议通过第一个请求建立了TCP连接以后,之后交换数据都不需要发送http header就能交换数据
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
1小时教你理解HTTP,TCP,UDP,Socket,WebSocket
MQTT和WebSocket
Socket.io
为什么要有HTTP协议,还要有websocket协议?
原来你是这样的Websocket
WebSocket 浅析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服