2012-03-08 7 views
3

Springの一部であるShallowEtagHeaderFilterは、HTTP要求でIf-None-Matchヘッダーを処理します。 Http 1.1仕様の一部として、リクエストで送信されたIf-None-Matchヘッダーの内容がEtagヘッダーと同じ場合は、HTTPステータス304 - Not Modifiedが返されます。これは、Etagがクライアントとサーバー上で同じ場合、内容が同じであることを意味するので、キャッシュに役立ちます。SpringでIf-Match HTTPヘッダーを実装する

これは問題ありません。

私の質問はこれです - SpringはIf-None-MatchではなくIf-Matchヘッダー(HTTP 1.1の一部)をサポートしていますが、ShallowEtagHeaderFilterはIf -None-Matchヘッダー。私は、If-Matchヘッダーが必要です。これは、同時リクエストが前のものを上書きするのを防ぐためです。私は、Etagsが同じで、したがって彼らがエンティティの最新バージョンを持っていれば、リクエストを処理したいだけです。

答えて

1

ShallowEtagHeaderFilterIf-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

+1

私はかなり場合でも、マッチのサポートを春可能性がどのように従っていません。理論的には。 if-matchをサポートできるようにするためには、実際に生成されたオブジェクトが実際に必要ですが、フィルタにはそれらのオブジェクトがありません。後でのみ行う場合は、if-none-matchで行うように、POST/PUTユースケースではサポートは無用です。彼らはもちろんGETのためにそれをサポートすることができますが、それは理にかなっていません。誰かがなぜそれを持っている場合にのみ、文書を持っていたいのですか? – eis

+0

>誰かがなぜそれを既に持っている場合にのみ、文書を持ちたいのですか?それは変更があるかもしれないので? (顧客を説明するjsonリソースについて考える) – gjambet

関連する問題