浅谈HttpClient

浅谈HttpClient

余生长醉 提交于 2019-11-30 18:54:56
HttpClient简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient支持的功能如下: 支持 Http0.9、H ttp1.0和Http1.1协议。 实现了Http全部的方法(GET,POST,PUT,HEAD 等)。 支持HTTPS协议。 支持代理服务器。 提供安全认证方案。 提供连接池以便重用连接。 连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。 在http1.0和http1.1中利用KeepAlive保持长连接。 浅谈HttpClient 本文简单谈下 HttpClient源码,而 HttpClient 源码 包有700K,所以这里只会挑重点介绍,详细源码大家可以下载 HttpClient的 最新的代码来研究。另外:本文所列举的都是 HttpClient 4.5 的源码。 HttpClient 连接池 HttpClient经常会用到连接池,以便重用tcp连接,特别是在使用长连接时能节约不少性能(避免了三次握手和四次解握)。 HttpClient连接池的逻辑是:先根据域名route 来找是否有空闲的连接,如果有就取出来用