述(最多18字

什么是长连接和短连接

短连接就是客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会复用同一个 TCP 通道,直到客户端心跳检测失败或服务器连接超时。

短连接过程如下:

  • 发起请求连接->传输数据->关闭连接

长连接过程如下:

  • 发起请求连接->传输数据->保持连接 -> 传输数据-> ... ->关闭连接。

简而言之,若没有数据传输也要保持TCP连接,就是长连接,反之就是短连接。(如下图)

HTTP长连接详情

长连接是由一个Connecton字段控制的,有两个取值:

1、 Keep-Alive 表示使用长连接,默认。

2、 Close 表示关闭长连接

复用详解

HTTP长连接的本质就是对TCP连接的复用,一个浏览器可能会发送建立狠很多个HTTP,也就是TCP,当浏览器需要发送一个HTTP时,怎么从多个TCP中找到自己的TCP呢?

通过 源IP地址、源端口号,目的IP地址、目的端口号 这个四元组来唯一确定一个TCP,根据这个四元组去系统里查找,然后复用。

HTTP长连接时间控制

HTTP长连接什么时候关闭呢?如果客户端和服务器之间不发送数据了,还不断开连接,就会造成资源浪费。怎么控制长连接的存活时间呢?

1、 客户端主动关闭,发送一个HTTP包,其中connection = close。

2、 服务器一般不会主动释放长连接。有以下两种策略:

2.1、 设置存活时间,当超过存活时间后,服务器自动断开长连接

2.2、 设置请求次数,当客户端请求超过请求次数后,就断开连接。

HTTP长连接的过程

当多个请求先后调用HTTP发送的时候,可以连续发送多个HTTP请求,但是响应确实FIFO,响应顺序严格按照发送请求返回,如果前一个响应阻塞,后边的响应也都阻塞,这也叫做队头阻塞。

以上就是关于HTTP的长连接和短连接介绍,希望能有效的帮助到大家。更多资讯和教程可留言给小编。

举报/反馈

巨量云计算

1199获赞 2495粉丝
巨量云—国内专业的云计算和大数据服务商
湖北巨量云科技官方账号,科技领域创作者
关注
0
0
收藏
分享