在http/1.0中,一个服务器发送完http响应后,会断开TCP连接。但是这样每次请求都会重新建立和断开TCP连接,开销太大。
所以,虽然标准中没有设定,但是某些服务器对Connection:keep-alive的Header进行了支持。Connection:keep-alive的作用是保持连接,即完成本次HTTP请求后,不断开HTTP请求使用的TCP连接。这样的好处是连接可以被重复使用,之后发送HTTP请求的时候就不用再重新建立TCP连接了。
HTTP协议Header中的Connection属性决定了连接是否持久,不同HTTP协议版本有所不同。
HTTP/1.0中Connection默认为close,即每次请求都会重新建立和断开TCP连接。
HTTP/1.1中Connection默认为keep-alive,即连接可以复用,不用每次都重新建立和断开TCP连接。超时之后没有连接则主动断开。可以通过声明Connection为close进行关闭。
所以说,默认情况下(HTTP/1.1),浏览器建立TCP连接之后,完成一次HTTP请求,不会断开。只有在请求报头中通过声明Connection:close才会关闭连接。