ws协议与http协议的异同_Socket、WebSocket 、HTTP 与 TCP有什么区别

WebSocket是为了满足Web实时通信需求而诞生的协议,解决了HTTP单向通信和频繁请求的问题,实现了全双工连接。与HTTP相比,WebSocket是HTML5的一部分,支持持久连接,而HTTP不支持。WebSocket不是Socket的子集,它工作在应用层,建立在TCP之上,提供更易用的API。WebSocket与Socket不同,Socket是会话层的抽象,是TCP/IP协议的封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、为什么需要WebSocket?

Browser已经支持http协议,为什么还要开发一种新的WebSocket协议呢?我们知道http协议是一种单向的网络协议,在建立连接后,它只允许Browser/UA(UserAgent)向WebServer发出请求资源后,WebServer才能返回相应的数据。而WebServer不能主动的推送数据给Browser/UA,当初这么设计http协议也是有原因的,假设WebServer能主动的推送数据给Browser/UA,那Browser/UA就太容易受到攻击,一些广告商也会主动的把一些广告信息在不经意间强行的传输给客户端,这不能不说是一个灾难。那么单向的http协议给现在的网站或Web应用程序开发带来了哪些问题呢?

让我们来看一个案例,现在假设我们想开发一个基于Web的应用程序去获取当前Web服务器的实时数据,例如火车票的剩余票数、实时信息等等,这就需要Browser/UA与WebServer端之间反复的进行http通信,Browser不断的发送Get请求,去获取当前的实时数据。

WebSocket从满足基于Web的日益增长的实时通信需求应运而生,解决了客户端发起多个Http请求到服务器资源浏览器必须要在经过长时间的轮询问题,实现里多路复用,是全双工、双向、单套接字连接,在WebSocket协议下服务器和客户端可以同时发送信息。

WebSocket和Http的异同点

同:

建立在TCP之上,通过TCP协议来传输数据。

都是可靠性传输协议。

都是应用层协议。

异:

WebSocket是HTML5中的协议,支持持久连接,HTTP不支持持久连接

HTTP是单向协议,只能由客户端发起,做不到服务器主动向客户端推送信息。

WebSocket和Socket

Socket本身并不是一个协议,它工作在OSI模型会话层,是一个套接字,TCP/IP网络的API,是为了方便大家直接使用更底层协议而存在的一个抽象层。Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值