HTTP的Keep-Alive
- 因为HTTP是以
请求-响应
来工作,所以在设计之初每次请求都要经过三次握手建立TCP连接,每次完成后都会在断开连接,主动释放连接的一方还要等待TIME_WAIT。 - 为了改善这种方式出现了keep-alive,它是头部的一个字段,它的作用就是在
某段时间内
、规定数量内
可以复用TCP连接,从而让世界变得更美好。
目的:多个Http请求复用TCP连接
TCP的KeepAlive
- 在TCP连接中,如果一方没有发送断开连接的请求,然后宕机了,另一方是感觉不到了,如果一直保持连接就会导致服务器资源占用。
- 这时候出现了KeepAlive,当保持长时间没有数据传输时,给对方发送一个ack包,如果多次发送ack没有得到回应,说明对方可能意外宕机,就可以主动断开这个连接。
目的:探测对方的存活状态,选择是否断开连接