java - 在 Spring 中实现 If-Match HTTP header

标签 java spring http servlets

ShallowEtagHeaderFilter这是 Spring 处理 Http 请求上的 If-None-Match header 的一部分。作为 Http 1.1 规范的一部分,如果请求中发送的 If-None-Match header 的内容与 Etag header 相同,则返回 304 - Not Modified 的 Http 状态。这对缓存很有帮助,因为这意味着如果客户端和服务器上的 Etag 相同,则内容将相同。

这很好。

但是我的问题是 - Spring 是否支持 If-Match header (同样是 HTTP 1.1 的一部分)而不是 If-None-Match,因为就文档而言,它看起来像 ShallowEtagHeaderFilter 只处理 If-不匹配标题。我需要 If-Match header 来防止同时请求覆盖前一个请求。 IE 我只希望在 Etag 相同时处理请求,因此它们具有最新版本的实体。

最佳答案

看起来 ShallowEtagHeaderFilter 不支持 If-Match:

curl "Accept: application/json" -H 'If-Match: "somevalue"' -i http://localhost:8080/rest-sec/api/resources/1

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
ETag: "03cb37ca667706c68c0aad4cb04c3a211"
Content-Type: application/json;charset=UTF-8
Content-Length: 56
Date: Fri, 11 Jan 2013 14:58:40 GMT

我打开了一个 JIRA 问题来跟踪这个: https://jira.springsource.org/browse/SPR-10164

关于java - 在 Spring 中实现 If-Match HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617416/

相关文章:

java - 浏览器在页面重新加载时要求重新发送数据

java - 不满意的依赖异常 : Error creating bean with name 'accountController'

python - 使用 Scrapy Request 上传验证码图片

java - 设计具有不同响应参数但相同请求的 REST API

java - Selenium:元素在该点不可点击

java - AP CS 实践 - OOP

java - 在 spring mvc 中使用 jQuery ajax 从 html 页面传递值

java - Spring 配置: How to export util:list based bean in osgi:service?

Python 请求得到响应 [200] 但表单未填写

java - Android应用程序中的倒计时