短连接
HTTP/1.0默认为短连接
每一次通信都对应一次tcp连接的建立,完成请求-响应过程,通信完毕后断开连接
长连接
HTTP/1.1默认为长连接
一次通信中,建立一个连接,可以连续发送多次请求,服务端按序响应进而减少连接建立以及断开的次数,避免TCP拥塞控制所带来的传输效率降低
但是HTTP/1.1中的管线化长连接依然不是最优解决方案,因为存在队头阻塞问题,若请求1响应较慢,其他的响应也会无法及时到达,必须等到请求1处理完毕后才会响应下一个请求,这个问题再HTTP/2.0中得到了解决-采用连接复用,一次连接连续传输,不再按序响应,哪个准备好了就响应哪个
如何控制短连接和长连接-通过头部中的Connection字段进行控制
close-短连接
keep-alive-长连接
应用场景
长连接-多用于操作频繁,点对点的通讯,而且客户端连接数目较少的情况。例如即时通讯、网络游戏等。
短连接-用户数目较多的Web网站的 HTTP 服务一般用短连接。例如京东,淘宝这样的大型网站一般客户端数量达到千万级甚至上亿,若采用长连接势必会使得服务端大量的资源被无效占用,所以一般使用的是短连接。