《HttpClient官方文档》2.7 连接套接字工厂

2.7. Socket连接工厂

HTTP连接在内部使用java.net.Socket类的对象来处理数据在线路上的传输。 然而,他们依靠 ConnectionSocketFactory接口来创建,初始化和连接Socket。HttpClient的使用者能够在运行时,提供应用程序特定的Socket初始化代码。PlainConnectionSocketFactory类是创建和初始化普通(未加密)套接字的默认工厂类。

阅读全文

《HttpClient官方文档》2.6 连接维持存活策略

2.6. 连接维持存活策略

HTTP规范不会指定长连接存活的时间,以及是否应该维持连接。一些HTTP服务器使用非标准的“Keep-Alive”头部来与客户端通信,以维持连接在服务器端存活的时间(以秒为单位)。如果这个可用, HttpClient将利用它。如果响应中不存在“Keep-Alive”头部,则HttpClient假定连接可以无限期存活。然而,通常许多HTTP服务器在使用中配置为不通知客户端,长连接在闲置一定时期之后会被丢弃,以便节省系统资源。 万一默认策略导致结果过于乐观,可能需要提供维持一个自定义的存活策略。

阅读全文

《Spring Boot官方指南》28.安全

28. 安全

如果Spring Security位于类路径上,那么Web应用程序将默认使用所有HTTP端点上的’basic’身份验证。要向Web应用程序添加方法级安全性,还可以为你想要的设置添加“@EnableGlobalMethodSecurity”。通过点击Spring Security Reference能够找到更多的信息。

阅读全文

《HttpClient官方文档》第六章 HTTP 缓存

原文链接 译者[xuheyang]

第六章. HTTP缓存

6.1. 通用概念

HttpClient Cache 提供了用HttpClient(等效浏览器缓存的Java实现)来兼容HTTP / 1.1的缓存层。实现遵循责任链模式,HttpClient缓存的实现类可以替代默认无缓存的HttpClient;完全可以通过缓存实现的请求将不会触发实际的原始请求。在可以的情况下,使用GETs条件If-Modified-Since和/or If-None-Match请求头,会自动验证旧的缓存项。HTTP / 1.1缓存一般被设计成语义透明的,也就是说,缓存不会改变客户端和服务器端的请求响应之间交换的意义。因此,向一个现有的客户端-服务器的关系中添加HttpClient是安全的。尽管从一个HTTP协议的角度来看,缓存模块是客户端的一部分,实现的目标是满足基于透明缓存代理的要求。最后,缓存HttpClient包括支持RFC 5861(stale-if-error和stale-while-revalidate)指定的cache – control扩展。 当缓存HttpClient执行一个请求时,它会通过以下流程:

阅读全文

带着问题学 Spring MVC 源码: 一、概述

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢!

简单就好,生活可以很德国

Q:什么是 Spring MVC ? ※

Spring MVC 是 Spring Web 的一个重要模块。Spring 支持 Web 应用,Spring MVC 是对 MVC 模式的支持。

阅读全文

《HttpClient官方文档》2.5 连接驱逐策略

2.5. 连接驱逐策略

经典阻塞I / O模型的主要缺点之一是网络套接字只有在I / O操作阻塞时才能对I / O事件作出反应。当连接释放回管理器时,它可以保持活动,但是它无法监视套接字的状态,并对任何I / O事件做出反应。如果服务器端关闭连接,客户端这边的连接将无法察觉连接状态的变化(并且在通过在末端关闭套接字来做出适当地对应)。

阅读全文

《HttpClient官方文档》2.4 多线程请求执行

2.4.多线程请求执行

当HttpClient拥有类似PoolingClientConnectionManage类这样的池连接管理器,它就能够使用多线程来并发执行多个请求。

阅读全文

《HttpClient官方文档》4.1-4.3 HTTP验证

原文链接  译者:edenpan

4 HTTP 验证

httpClient 对根据HTTP 标准规则制定的权限验证方案,以及很多不标准但广泛使用的验证方案,比如:NTML和SPNEGO提供完全的支持。

阅读全文

《HttpClient官方文档》2.3 HTTP连接管理

2.3. HTTP 连接管理

2.3.1. 管理连接和连接管理器

HTTP 连接是复杂的、 有状态的、 非线程安全的对象,因此需要恰当的管理才能正常工作。HTTP连接一次只能由一个线程使用。HttpClient使用实现了HttpClientConnectionManager接口,被称为HTTP连接管理器的特殊实体去访问HTTP连接。
阅读全文

《Spring Boot官方指南》-30.1 redis

Redis是一个缓存,消息中间件及具有丰富特性的键值存储系统。Spring Boot为Jedis客户端库和由Spring Data Redis提供的基于Jedis客户端的抽象提供自动配置。spring-boot-starter-redis‘Starter POM’为收集依赖提供一种便利的方式。

阅读全文

《HttpClient官方文档》1.2 HttpClient 接口

原文链接

1.2. HttpClient 接口

HttpClient 接口表示最基本的HTTP请求执行要约。它不会对请求执行过程加上约束或一些特定的信息,并且保留连接管理,状态管理,认证和处理重定向的细节到各自的实现中。这会使它更方便的使用额外功能来装饰接口,如响应内容缓存。

阅读全文

《HttpClient官方文档》1.1 执行请求

原文链接

1.1. 执行请求

HttpClient最基本的功能就是执行HTTP方法。 一个HTTP方法的执行包含一次或多次HTTP请求与响应,通常由HttpClient的内部处理。
用户提供一个请求对象,HttpClient发送该请求到目标服务器,服务器返回相应的响应对象,如果执行未成功则抛出一个异常。

阅读全文

《HttpClient官方文档》1.6 中止请求

1.6. 中止请求

在某些情况下,由于服务器端的高负载或者客户端存在过多的并发请求问题,HTTP请求不能在预期时间内执行完毕。 遇到这种情况,可能需要提前中止请求并开启阻塞在I/O操作的线程。 通过HttpUriRequest#abort()方法,可以在任何阶段中止由HttpClient执行的HTTP请求。

阅读全文

《HttpClient官方文档》1.5 异常处理

1.5. 异常处理

HTTP协议处理器会抛出两种类型的异常: 一种是I/O失败的情况下产生的java.io.IOException,比如套接字超时或重置。 另一种是发送HTTP信号失败情况下的HttpException,比如违反HTTP协议。 通常情况,我们认为I/O错误是非致命且可恢复的错误,而HTTP协议错误则是致命且不能自动恢复的。 请注意,HttpClient将HttpException重新封装成一个IOException的子类ClientProtocolException,这样用户就可以在一个catch代码块中同时处理I/O错误和违反协议的错误。 阅读全文

《HttpClient 官方文档》第五章 Fluent API

原文链接  译者[white]

第五章:流式 API

5.1 易用 API 接口

4.2版本的 HttpClient 带来了一组非常容易使用的流式 API(Fluent API) 接口。暴露的流式API(Fluent API) 接口中仅仅是 HttpClient 最基本的一些功能,这些接口是在不需要使用 HttpClient 丰富的灵活性时,为了一些简单的功能而准备的。 例如:流式接口(Fluent API) 增加了使用者对连接的管理和资源的分配上的便利性。这里有一系列通过 HttpClient 流式接口(Fluent API) 执行 HTTP 请求的示例:

阅读全文

return top