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就能交换数据
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值