websocket全双工协议

WebSocket协议作为TCP的一种新协议,实现了浏览器与服务器之间的全双工通信。本文介绍了WebSocket的发展背景及应用场景,探讨了其如何解决HTTP协议单向通信的问题,并列举了几种实现双向通信的技术方案。

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

websock简介

WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工(full-duplex)通信。

渊源

http协议设计之初,由于考虑到服务端如果能主动地让浏览器端推送广告的情况,所以我们现在所使用的http协议并不能由服务器端主动地向浏览器端发送数据。

发展与需求的诞生

随着移动互联网的诞生和HTML5的兴起,web上能做的事情也是越来越多,从一开始的用户提交数据到服务器,服务器返回结果。到现在的用户产生的数据提供给其它的用户。就这样,用户对互联网产品的要求也是越来越高,无论是从技术上、产品设计上、稳定性上、还是UI设计上都是越来越高。绝大多数的互联网产品都是秉承着"用户至上"的理念,当然也有些产品不是这样想的(比如12306)。随着互联网产品需求指数爆炸性的增长,当然迭代变更的需求也是很多的,有很多时候只用到基本的技术是很难实现并满足这些需求的。
就比如说,我们要设计一个web聊天室,把A的消息发送给B。由于http协议本身是不支持全双工的,也就是说浏览器端和服务器端是无法直接双向通信的。所以我们不能直接实现这个功能,但是可以间接实现,实现的方案如下:
  • 1.轮循(Polling)
  • 2.长轮循(Long Polling)
  • 3.插件(adobe)
  • 4.websocket
  • 5.Forever Iframe

    应用场景

    其实websocket协议定义了全双工的通信协议,目前主要应用于即时通信的应用场景。如果能得到充分的开发,其实也可以做很多事情。比如我们经常使用的用户识别,使用cookie和session做身份识别,因为cookie加密存储在本地,所以服务器始终能识别用户身份,用以弥补http协议无状态的缺陷。如果采用websocket的形式交互的话,建立连接以后会始终保持连接,就不需要使用cookie和session了。但是连接数增大到一定量级时,也会给服务器带来性能之忧。其实还有很多应用场景是有待开发的。

转载于:https://www.cnblogs.com/guohan/p/6728315.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值