0
点赞
收藏
分享

微信扫一扫

图解HTTP的非持续连接和持续链接

晴儿成长记 2022-03-23 阅读 111
网络协议

HTTP得非持续连接和持续链接

内容目录


首先什么是持续连接和非持续连接。

就是依据应用程序以及应用程序得使用方式,这一系列请求可以以规则的间隔周期性得一个接着一个发出。当这种客户-服务器得交互是经过TCP进行得,所以每个请求/响应是通过一个单独得TCP连接发送,还是所有得请求/响应经相同得TCP连接发送?

通过一个单独的TCP连接发送时,就是非持续性连接;所有请求通过相同的TCP发送时,就是持续连接。

这两种方式各有优点,HTTP默认采用的是持续性连接,但是也不是说非持续下连接不行。

一、非持续连接

比如我们需要往一个web页面发送请求,请求得到十张图片。

非持续连接是这样做的

  1. HTTP客户进程在端口号80发起一个TCP连接到这个web页面:http://xxxxx.com/xxx
  2. HTTP客户经过它的套接字像服务器发送一个HTTP请求报文。保温种包含请求路径/xxx/xxx
  3. HTTP服务通过它的套接字接受该请求报文,然后从自己的存储种检索出对象xxx/xxxx,然后在一个响应报文种封装对象,并通过套接字发送给响应报文
  4. HTTP通知TCP断开连接
  5. HTTP客户端受到响应报文,TCP连接中断。该报文里面封装了一个html文件,客户端从报文中提取出该文件,检查该html文件,得到对应10个图片的引用
  6. 对每个图片引用对象重复前面的操作,直到全部拿下

上面就是非持续连接的步骤和流程,其中每个tcp连接在 服务器发送一个对象后关闭,然后接着进行下一个tcp连接,每一个tcp连接只能传输一个请求和响应报文,也就是要在一个页面上拿到十个图片,需要建立10+1个TCP连接。
在这里插入图片描述

这种tcp连接时串联工作的,其实大部分的浏览器可以进行并行操作,可以设置打开5~10个并行的tcp连接,然后每条连接去处理一个请求响应。

二、持续连接

非持续连接有两个缺点:

  1. 必须为每一个请求对象建立和维护一个全新的连接,这样会对web服务器带来负担
  2. 每一个对象会有RTT的交付延迟

所以持续连接,就是在相同的客户端和服务器之后续的请求和响应报文能够通过相同的连接进行传送。特别的时,一个完整的web页面,可以用单个持续TCP连接进行传送。
在这里插入图片描述

那么这条持续连接的TCP什么时候,也不能一直处于连接状态

如果一条连接经过一定时间间隔(这个是可以配置的)仍未被使用,HTTP服务就会关闭这个连接。
在这里插入图片描述

HTTP默认模式是使用带流水线的持续连接

举报

相关推荐

0 条评论