是不是每发送一个http请求,都建立一个TCP连接?
不是,为了节省握手、挥手的时间。当浏览器发送一个请求到web服务器的时候,Web服务器内部就设置一个定时器。在一定范围内,如果客户端继续发送请求,那么服务器就会重置定时器。如果在一定范围的时间内,服务器没有收到请求,就会将连接断开。这样既防止浪费握手、挥手的资源,同时又避免一个连接占用时间过长无法回收导致内存使用率下降。
使用技巧
1. http请求头里加入 keep-alive: timeout=5s
此设置是为了告诉web服务器连接的时间坚持5秒,如果5s内没有请求则会断开,否则就重置。