背景
http是建立在TCP之上的,一次TCP连接要经过三次握手过程。当我们通过http发送请求时,如果一次http对应一个TCP,会造成TCP频繁的重建,造成资源浪费,对于这个问题,就有了http连接池,用于缓存TCP连接和请求前的公共数据,如认证证书过程等。
http连接池
http连接池缓存的是TCP连接。这个连接是针对于host的。如果要向不同的域名发送请求,缓存多个域名的连接,需要有多个连接池。
1、降低延迟:如果不采用连接池,每次连接发起Http请求的时候都会重新建立TCP连接(经历3次握手),用完就会关闭连接(4次挥手),如果采用连接池则减少了这部分时间损耗
2、支持更大的并发:如果不采用连接池,每次连接都会打开一个端口,在大并发的情况下系统的端口资源很快就会被用完,导致无法建立新的连接