长连接长轮询

一、长/短连接

  1. 传输层协议tcp,建立连接后,可以保持一段时间不断开,在这个连接上可以进行双工通信,故真正的长连接指的是tcp长连接。

  2. 每个应用层协议http请求始终都是无状态的,无论哪个版本的http协议,其本身是不具备长连接能力的。

  3. 通常说的http长连接,确切的是http协议搭配tcp长连接机制。

  4. http1.0不能搭配tcp长连接,自http1.1开始才可以,且默认开启,请求和响应头中都会包含Connection: keep-alive这样的header,Connection: closed表明关闭了长连接功能,。

  5. 长连接的出发点就是复用传输层连接,避免频繁创建和销毁带来的无畏开销,但同时长连接也是有时限的,超过时限没有数据传输,将断开连接。所以长连接一般适用于频繁的多次http请求,否则复用收益就不明显。但是大部分基于web的应用都适用,比如博客网站,直觉上我们加载一篇博客,通常要花几十秒甚至几分钟来阅读,这不属于频繁请求,感觉没必要使用长连接。但其实不然,在我们加载博客内容的同时,还需要加载大量的css、js、图片,它们与博文内容一样都需要在较短的时间内加载就绪,需要N次http请求,如果使用长连接就可以从复用中获益。

二、长/短轮询

posted @ 2022-05-24 14:12  JaxYoun  阅读(72)  评论(0编辑  收藏  举报