在HTTP/1.0中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。
但从 HTTP/1.1起,默认使用长连接,用以保持连接特性。
HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。
1.TCP的短连接:
client向server发起连接请求,server接到请求,然后双方建立连接。client向server 发送消息,server回应client,然后一次读写就完成了,这时候双方任何一个都可以发起close操作。
短连接的优点是:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段
2.TCP的长连接
client向server发起连接,server接受client连接,双方建立连接。Client与server完成一次读写之后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。
3.短连接和长连接连接过程
短连接:建立连接——数据传输——关闭连接 ... 建立连接——数据传输——关闭连接
长连接:建立连接——数据传输 ...(保持连接)...数据传输——关闭连接
4.对比
长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。
短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在TCP的建立和关闭操作上浪费时间和带宽。