1、什么是HTTP短连接?
- 在HTTP1.0中默认使用的是HTTP短连接:Client和Server之间的每一次HTTP操作,都需要建立一次连接,本次任务结束后断开连接。
- 当客户端浏览器访问的某个HTML或其他类型的Web⻚中包含有其他的Web资源(如 JavaScript⽂件、图像⽂件、CSS⽂件等),每遇到这样⼀个Web资源,浏览器就会重新建⽴⼀个HTTP会话。
- 模拟TCP三次握手:client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次请求…可以看到短连接一般只在client&server之间传递一次请求操作。
2、什么是HTTP长连接?
- 从HTTP1.1开始,默认使用HTTP长连接:当⼀个⽹⻚打开完成后,客户端和服务器之间⽤于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使⽤这⼀条已经建⽴的连接。
Connection:keep-alive
- 使⽤⻓连接的HTTP协议,会在响应头加⼊这⾏代码。Keep-Alive不会永久保持连接,它有⼀个保持时间,可以在服务器软件如Apache上进行设置。这里实现长连接需要Client和Server都支持长连接才行。
- 模拟TCP三次握手:client向server发起连接,server接受client连接,双方建立连接,client与server完成一次请求后,它们之间的连接并不会主动关闭,后续的读写操作会继续使用这个连接。
3、短连接和长连接总结
- 短连接:管理简单,不需要额外的控制手段。 但Client请求频繁时,TCP的连接和断开耗时耗资源
- 长连接:节省TCP建立和关闭的消耗,适合资源请求频繁的Clien.