webscoket和http的区别详解?

什么是webscoket?

webscoket是html5下的一种新的协议,
它实现了浏览器全双工通信,能够更好的节省服务器资源和带宽,并达到实时通信的目的。
webscoket是一个持久化的协议

webscoket的原理?

  • webscoket约定了一个通信的规范,通过一个握手的机制,客户端和服务器之间建立一个类似tcp的连接,从而方便了他们之间的通信。
  • 在webscoket出现之前,web交互一般是基于http协议的短连接或者长连接。
  • webscoket是一种全新的协议,不属于http无状态协议,协议名为’ws’

Websocket缺点

服务器长期维护长连接需要一定的成本
各个浏览器支持程度不一
websocket 是长连接,受网络限制比较大,需要处理好重连,比如用户进电梯或电信用户打个电话网断了,这时候就需要重连

Websocket的作用

解决了传统轮询(Traditional Polling)、长轮询(Long Polling)带来的问题(服务端负载、延迟等)。

webscoket的特点:

它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种
(1)建立在 TCP 协议之上,服务器端的实现比较容易。

(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

(3)数据格式比较轻量,性能开销小,通信高效。

(4)可以发送文本,也可以发送二进制数据。

(5)没有同源限制,客户端可以与任意服务器通信。

(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

Websocket应用场景

websocket在实时通信领域运用的比较多,比如社交聊天、弹幕、多玩家游戏、协同编辑、股票基金实时报价、体育实况更新、视频会议/聊天、基于位置的应用、在线教育、智能家居等需要高实时的场景。

Websocket工作流程:

1、客户端发送 http 请求,经过三次握手,建立 TCP连接,
在 http 请求里存放 websocket 支持的版本号等信息;
2、服务器接收请求,同样以 http 协议回应;
3、连接成功,客户端与服务器建立持久性的连接。

http 协议是什么?

超文本传输协议,用于从 www 服务器传输超文本到本地浏览器的传输协议。http 是基于 tcp 协议的一个应用层的协议,由请求和相应构成;是一个无状态的协议。
https:https 就是加密的 http ,它通过 http 进行通信,利用 SSL/TLS 建立安全信道,加密数据包。是计算机网络进行安全通信的传输协议。

HTTP协议的特点:

  • 灵活可扩展:(HTTP协议就随着互联网的发展一同成长起来了。在这个过程中,HTTP协议逐渐增加了请求方法、版本号、状态码、头字段等特性。而body也不再限于文本形式的TXT或HTML,而是能够传输图片、音频视频等任意数据,这些都是源于它的“灵活可扩展”的特点)

  • 可靠传输(因为HTTP协议是基于TCP/IP的,而TCP本身是一个“可靠”的传输协议,所以HTTP自然 也就继承了这个特性,能够在请求方和应答方之间“可靠”地传输数据。)

  • 应用层协议(HTTP几乎可以传递一切东西,满足各种需求,称得上是一个“万能”的协议。)

  • 无状态

工作流程:

	1、客户端和服务端建立连接,http开始工作;
	2、建立连接后客户端发送请求给服务器;
	3、服务器收到请求后,给予相应的响应信息;
	4、客户端接收服务器返回的数据并在浏览器上展示,然后客户端和服务器连接断开。

webscoket与http的区别?

相同点:

  1. 都是基于tcp的,都是可靠性传输协议。
  2. 都是应用层协议。
  3. websocket 是基于 http 的,他们的兼容性都很好

不同点:

webscoket是双向通信协议,模拟scoket协议,可以双向发送或接收信息。
http是单向的
websocket 是持久连接,http 是短连接
webscoket是需要浏览器和服务器握手进行建立连接的
http是浏览器发起向服务器的连接,服务器预先并不不知道这个连接。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值