HTTP和WebSocket详解

在整合之前需要搞清楚下面几个问题:

1、Socket是什么

2、为什么有了http还要用Socket

3、springBoot整合WebSocket主要作用

一、Socket是什么

是为了实现网络协议(例如HTTP,IP协议)的通信而建立起来的通信通道,Socket是一种连接模式,不是协议,可以根据例如HTTP协议建立连接通道,也可以根据TCP协议简历Socket通道,可以创建任意协议的通道。

二、HTTP与Socket有什么不同

1、HTTP简述

是通过网站地址(URL)从Web服务器上将网页代码提取出来,并翻译成漂亮的网页

浏览器(客户端)通过HTTP协议通过URL向服务器发送请求

服务器再返回相对应的数据


2、HTTP和Socket优缺点

 HTTP的缺点:

只能从客户端发起通信,不能通过HTTP协议让服务器主动向客户端推送消息

只有通过"轮询"获取服务器最新信息,也就是每隔一段时间向服务器发出一个请求,看看有没有最新的信息

这样效率低,还浪费资源

一个Request请求只有一个Response,虽然在HTTP1.1中进行了改进,在一个HTTP连接中,可以发送多个Request,接收多个Response,但是还是一个Request只能有一个Response,而且Response一直是被动的,不能主动发起

WebSocket优点:

WebSocket可以让服务器主动向客户端推送消息,客户端也可以主动向服务器发送信息

3、WebSocket和Ajax轮询和Long Poll

ajax轮询也可以实现让浏览器每隔几秒就发送一次请求,查看有没有新信息,为什么还要用websocket呢?

long poll 其实原理跟 ajax轮询 差不多,不过使用的是阻塞模型,就是客户端发起请求后,如果没收到消息,就一直不返回Response给客户端。直到有消息才会返回,然后客户端再次建立连接,周而复始。
总结:

ajax轮询 需要服务器有很快的处理速度和资源。(速度)

long poll 需要有很高的并发,也就是说同时接待客户的能力。(场地大小)

所以ajax轮询 和long poll 都有可能发生这种情况:

在客户端去请求服务端的时候,服务端会一直处于繁忙中

技术链接:

http://www.runoob.com/html/html5-websocket.html

http://www.ruanyifeng.com/blog/2017/05/websocket.html


猜你喜欢

转载自blog.csdn.net/qq_38973841/article/details/80242975