webscoket和http的区别详解?
创始人
2024-05-29 17:38:48

文章目录

    • 什么是webscoket?
      • webscoket的原理?
      • Websocket缺点
      • Websocket的作用
      • webscoket的特点:
      • Websocket应用场景
      • Websocket工作流程:
    • http 协议是什么?
      • HTTP协议的特点:
      • 工作流程:
    • 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是浏览器发起向服务器的连接,服务器预先并不不知道这个连接。

相关内容

热门资讯

27家!废止!福州仓山区教育局... 福州市仓山区教育局公告,27家民办机构办学许可证被废止。 根据《中华人民共和国民办教育促进法》...
《长江画传》新书发布,展现中国... 日前,《长江画传》新书发布暨“国家文化公园画传系列”出版座谈会在北京举行,这也代表着“国家文化公园画...
委政府驳斥美国关于委局势“不安... 据新华社加拉加斯1月10日电 委内瑞拉政府10日发表声明说,美国关于委局势“不安全”的说法不属实。声...
互动科学秀《疯狂实验室》在乌鲁... 1月10日晚,新疆乌鲁木齐市,沉浸式儿童剧——互动科学秀《疯狂实验室》在新疆人民剧场演出,悬浮沙滩球...
前谷歌、苹果研究员为New V...   资深人工智能研究员Andrew Dai表示,在谷歌DeepMind任职14年后,他近期已离职并将...