为什么会有WebSocket?

简单的说,一个原因是为了解决HTTP请求模式造成的资源浪费问题。普通的HTTP请求是,用户向服务器发出一个请求,服务器收到请求后给用户一个回复,这种交流永远是由用户发起然后服务器做出回应。这种模式下被人经常提及的问题是ajax polling (ajax轮询)和long polling。

Ajax Polling 指的是用户向服务发起请求后,服务器没有给到回复,接着用户再发一次请求再问一遍,如果服务器一直不给回复,用户发问的过程就会一直进行下去,无穷无尽。每一次发问都是一个发起HTTP连接的过程。

Long Polling是指比如用户给服务器发起一个请求要个数据,服务器此时还没有把数据准备好,用户和服务器之间的连接就一直这么保持着(两边都耗着在),就像用户给服务器打电话用户在线等着,服务器没有要挂的意思,就一直在线上让用户等着,直到服务器有了数据给用户一个回答这过程算是完成,如果服务器一直没有数据就在线上耗着超时了,这时用户服务器间连接断了。这之后用户接着打电话,服务器拿起电话接着让用户等着。一直这样下去。每次用户打电话的过程都是一个发起HTTP连接的过程。

在这两个问题中可以看出服务器是受,很被动。Ajax Polling和Long Polling都是用户不断不断给服务发送请求的交流模式,用户不断的给服务发起HTTP连接,对服务器的要求很高的。Ajax polling的情况下服务器要很快的反应速度来接招用户一直一直的发问, long polling的情况下服务器难免同时接好几个电话所以要处理好并发,所以说这是对服务器资源的消耗。WebSocket协议的出现就是让服务器主动一些,下次再写WebSocket是怎么实现的。

2021.01.12 #websocket##http##ajax轮询##long轮询##web前端##技术笔记#

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致...
    零一间阅读 819评论 0 2
  • WebSocket简介 谈到Web实时推送,就不得不说WebSocket。在WebSocket出现之前,很多网站为...
    吧啦啦小汤圆阅读 8,192评论 15 75
  • Socket并非是一个协议,而是为了方便使用TCP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。换句话...
    JunChow520阅读 3,367评论 0 4
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,565评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,610评论 0 11