java 客户端请求筛选器与容器请求筛选器

vyswwuz2  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(133)

我知道过滤器是用来处理请求的,并且可以处理http头和httpmethods,但是我把它们搞混了

ClientRequestFilterContainerRequestFilter之间有什么区别?在哪种情况下我们必须使用ClientRequestFilterContainerRequestFilter

我试过这个网站,但没有任何细节。
请帮助我理解这一点。

qv7cva1a

qv7cva1a1#

REST交互有两个方面,客户端和服务器。Jersey/JAX-RS-2有客户端API和“主”服务器端API。当使用客户端API时,我们可以使用ClientRequestFilter,当使用服务器端API时,我们将使用ContainerRequestFilter。不可能混合和匹配这些API。它们应该严格地与交互的适当方一起使用。
一个ContainerRequestFilter(服务器端)的例子是进行一些授权/认证,这是服务器端过滤器的一个非常常见的用例。

Client --->  Internet ---> Server ---> Filter ---> Resource

一个ClientRequestFilter(客户端)的例子是实现一些客户端缓存(类似于浏览器缓存)。或者一个case(已经实现)是一个过滤器,用于编码BASIC身份验证的用户名和密码。在请求实际发送到服务器之前,客户端过滤器将被调用。

Client ---> Filter ---> Internet ---> Server ---> Resource

还有一些XxxResponseFilters遵循以下流程

Resource ---> ContainerResponseFilter ---> Server ---> Internet ---> Client

Server ---> Internet ---> ClientResponseFilter ---> Client

相关问题