通常情况下,我们使用的是HTTP,HTTP里面的请求工作状态我们通常称为短连接,就是我们一次请求后,进行完操作,我们就会断开这个连接不会保留,下次请求我们重新生成一个新的连接,但是当我们搜索长连接这个关键字时,我们会发现很多文章在讲HTTP长连接,那HTTP长连接是什么呢,传统的HTTP连接我们一次请求,一次连接,一次释放,如果在请求密集的情况下,就造成了不必要的连接,释放操作,我们完全可以利用过去的连接来进行一个新的请求,来避免反复的连接和释放,这就是HTTP长连接,它是对传统HTTP的一个性能提升。我们一般也不会称它为长连接。
工作中通常提到的长连接是基于TCP的长连接。
等下,看看这个名字,TCP长连接?所以TCP提供了长连接和短连接两种方式给上层应用层使用么?
答案:不是,TCP传输控制协议,其目的只是为了可靠传输和控制传输,它才不管你长长短短的。连接是长还是短那是上层应用层自己控制的,TCP只提供了连接的那部分。我们所说的TCP长连接,其实是我们根据自己的规则来自定义的一个应用层协议。
为什么要用TCP长连接,不能用HTTP长连接呢?因为HTTP协议只能一个请求,一个响应,都得由客户端发起请求,不能主动响应。而TCP长连接是可以实现服务端主动发消息给客户端的。
什么是websocket。我们知道socket是一套编程接口,我们可以使用socket来实现自己的网络协议,但是如果我们每个人都根据自己的喜好来实现自己的长连接协议,费时费力不说,通用性还不强。websocket就解决了这个问题,websocket定义了一套规范,包括信息的传递方式,和收发信息的接口,我们只需要按照websocket的要求来实现websocket协议就可以轻松解决客户端和服务端通信的需求,当然有了标准的协议,第三方实现也变的简单,可以采用第三方实现来快速搭建你的应用
网友评论