httpclient-tutorial-simplified-chinese
### HttpClient教程概览 #### 一、基础知识 **1.1 执行请求** - **HTTP 请求**:HTTP 请求包括请求行、请求头和可能的消息体。请求行包含方法(如GET、POST)、请求URI和HTTP版本。请求头包含了客户端希望服务器如何处理请求的信息。 - **HTTP 响应**:HTTP 响应由状态行、响应头和消息体组成。状态行包含了HTTP版本、状态码以及描述状态的简短信息。响应头提供了关于响应的额外信息。 - **处理报文头部**:报文头部包含了关于请求或响应的重要元数据。例如,“Content-Type”指定消息体的数据类型;“User-Agent”描述了发起请求的客户端。 **1.1.4 HTTP 实体**:HTTP实体由实体头和可选的实体主体组成。实体头提供了关于实体主体的信息,例如其长度、编码方式等。实体主体则携带了实际的数据。 **1.1.5 确保低级别资源释放**:为了防止内存泄漏,必须确保HTTP客户端在使用完资源后能够正确释放它们,例如关闭Socket连接。 **1.1.6 消耗实体内容**:在读取完实体内容之后,通常需要显式地释放这些内容,以免占用过多内存。 **1.1.7 生成实体内容**:当发送带有实体主体的请求时,客户端需要构造实体主体并设置相应的实体头。 **1.1.8 响应控制器**:响应控制器负责解析HTTP响应,并根据响应的内容采取进一步的行动。 **1.2 HTTP 执行的环境**:执行HTTP请求的环境可能包括网络条件、服务器行为等。 **1.3 异常处理** - **HTTP 运输安全**:涉及到加密传输数据,以保护数据在传输过程中的安全性。 - **幂等的方法**:指可以重复执行且结果一致的操作,例如GET和HEAD方法。 - **异常自动恢复**:客户端可以根据异常情况自动尝试重新发送失败的请求。 - **请求重试处理**:客户端可以在遇到网络故障或其他暂时性错误时自动重试请求。 **1.4 中止请求**:在某些情况下,可能需要取消正在进行的请求。 **1.5 HTTP 协议拦截器**:允许开发者在HTTP请求或响应的过程中添加自定义逻辑。 **1.6 HTTP 参数** - **参数层次**:HTTP参数可以在不同的层次上定义,如全局参数、连接参数等。 - **HTTP 参数 Bean**:提供了封装HTTP参数的对象,便于管理和使用。 **1.7 HTTP 请求执行参数**:这些参数控制了请求的执行过程,如超时时间、最大重试次数等。 #### 二、连接管理 **2.1 连接参数**:用于控制连接的行为,如连接超时、SOCKET超时等。 **2.2 持久连接**:允许客户端在一个TCP连接上连续发送多个HTTP请求,提高了效率。 **2.3 HTTP 连接路由** - **路由计算**:确定到达目标主机的最佳路径。 - **安全 HTTP 连接**:通过HTTPS协议建立的安全连接。 **2.4 HTTP 路由参数**:用于控制连接路由的行为。 **2.5 套接字工厂** - **安全套接字分层**:用于创建安全的Socket连接。 - **SSL/TLS 的定制**:允许定制TLS协议的安全选项。 - **主机名验证**:确保连接到正确的服务器。 **2.6 协议模式**:定义了HTTP客户端如何与服务器交互的方式。 **2.7 HttpClient 代理配置**:允许客户端通过代理服务器进行通信。 **2.8 HTTP 连接管理器** - **连接操作器**:负责打开和关闭连接。 - **管理连接和连接管理器**:连接管理器管理着连接池。 - **简单连接管理器**:适用于简单的场景。 - **连接池管理器**:管理连接池,以提高性能。 - **连接管理器关闭**:在不再需要连接时释放资源。 **2.9 连接管理参数**:用于调整连接管理器的行为。 **2.10 多线程执行请求**:支持并发执行多个HTTP请求,提高吞吐量。 **2.11 连接收回策略**:规定了何时关闭空闲连接。 **2.12 连接保持活动的策略**:用于防止连接因长时间闲置而被关闭。 #### 三、HTTP 状态管理 **3.1 HTTP cookies** - **Cookie 版本**:不同的Cookie版本具有不同的特性。 - **Cookie 规范**:定义了Cookie的工作原理及规则。 **3.2 Cookie 规范注册表**:登记了Cookie的规范和版本。 **3.3 HTTP cookie 和状态管理参数**:用于控制Cookie的行为。 **3.4 Cookie 规范注册表**:管理不同版本的Cookie规范。 **3.5 选择 cookie 策略**:决定客户端如何处理Cookie。 **3.6 定制 cookie 策略**:允许开发者定义自己的Cookie处理逻辑。 **3.7 Cookie 持久化**:将Cookie存储在客户端设备上,以便下次访问同一站点时使用。 **3.8 HTTP 状态管理和执行上下文**:描述了如何在HTTP请求过程中管理状态信息。 **3.9 每个用户/线程的状态管理**:确保每个用户或线程有自己的状态管理实例。 #### 四、HTTP 认证 **4.1 用户凭证**:用户用于登录的用户名和密码等信息。 **4.2 认证模式**:描述了不同的身份验证机制。 **4.3 HTTP 认证参数**:用于控制认证行为的参数。 **4.4 认证模式注册表**:登记了可用的身份验证模式。 **4.5 凭据提供器**:提供用户凭据的对象。 **4.6 HTTP 认证和执行上下文**:描述了如何在HTTP请求过程中处理认证信息。 **4.7 抢占认证**:服务器预先告知客户端需要认证的过程。 **4.8 NTLM 认证** - **NTLM 连接持久化**:在NTLM认证下保持连接开放。 #### 五、HTTP 客户端服务 **5.1 HttpClient 门面**:提供了一个简单易用的接口。 **5.2 HttpClient 参数**:用于调整HttpClient的行为。 **5.3 自动重定向处理**:自动处理HTTP响应中的重定向。 **5.4 HTTP 客户端和执行上下文**:描述了如何在HTTP客户端中管理执行上下文。 #### 六、高级主题 **6.1 自定义客户端连接**:允许开发者自定义连接的细节。 **6.2 有状态的 HTTP 连接** - **用户令牌处理器**:处理用户的令牌。 - **用户令牌和执行上下文**:描述了如何在执行上下文中管理用户令牌。 通过以上内容,我们可以看出,`HttpClient`不仅提供了基本的HTTP请求和响应处理能力,还深入到了连接管理、状态管理、认证等多个方面,旨在为开发者提供一个强大而灵活的工具集,以便于开发出高质量的HTTP客户端应用程序。
- rafale352014-09-16不错的帮助文档
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助