HTTP ------ connection 为 close 和 keep-alive 的区别
Posted 流水灯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP ------ connection 为 close 和 keep-alive 的区别相关的知识,希望对你有一定的参考价值。
keep-alive和close这个要从TCP握手讲起
HTTP请求是基于TCP连接的,TCP的请求会包含(三次握手,中间请求,四次挥手)
在HTTP/1.0时代,一个HTTP请求就要三次握手和四次挥手,当一个网页中包含大量的图片或者其它外部资源时,加载一个Document要很多个HTTP请求,也就意味着要多次三次握手和四次挥手,这样就造成了网络资源的浪费
到了HTTP/1.1的时候,通过请求头的connection字段用来申明,作用就是减少TCP握手次数,开始的三次握手后就可以进行多次HTTP正文请求,可以长时间的保持,也就是加载一个Document的时候,即使有大量的图片等,也只用进行一次握手,这样就大大的减少了传输量了。keep-alive就表示之前已经进行过握手,可以直接进行HTTP正文传输,close表示结束,我接下来没有东西了,可以进行四次挥手结束这个TCP连接了
以上是关于HTTP ------ connection 为 close 和 keep-alive 的区别的主要内容,如果未能解决你的问题,请参考以下文章
HTTP2 ERR CONNECTION CLOSED(开销太大)
在 AWS Linux 上增加 RestClient / Net::HTTP 中的 connect(2) 超时