1、先看以下五个问题
- 现代浏览器在与服务器建立了一个
TCP
连接后,是否会在一个HTTP
请求完成之后断开?什么情况下会断开? - 一个
TCP
连接可以对应几个HTTP
请求? - 一个
TCP
连接中,HTTP
请求发送可以一起发送吗(比如一起发起三个请求,再三个响应一起接收)? - 为什么有的时候刷新页面不需要重新建立
SSL
连接? - 浏览器对同一
Host
建立TCP
连接的数量有没限制?
现代浏览器在与服务器建立了一个TCP连接后是否会在一个HTTP请求完成后断开?什么情况下会断开?
在HTTP/1.0
中,一个服务器在发送完一个HTTP
响应后,会断开TCP
连接。但是这样每次请求都会重新建立和断开TCP
连接,代价过大。所以虽然标准中没有设定,某些服务器对Connection: keep-alive
的Header
进行了支持。
意思是说,完成这个HTTP
请求之后,不要断开HTTP
请求使用TCP
连接。这样的好处是连接可以被重新使用,之后发送HTTP
请求的时候不需要重新建立TCP
连接,以及如果维持连接,那么SSL
的开销也可以避免。
以下两张图片是短时间内访问某站点的时间统计:
</