2011-10-23 10 views
6

を示しています私はこのHTTP範囲ヘッダーが

/entities  # GET, POST 
/entities/<id> # GET, PUT, DELETE 

GET /エンティティのようなリソースを持っているすべてのエンティティのリストを取得します。 今更新をポーリングします。単一のエンティティの場合はまっすぐです:

GET /entities/2 
If-Modified-Since: <http date> 

リストは難解です。私は、応答が、与えられた時点以降に更新されたり作成されたエンティティのリストであることを望んでいます。私は直感的に使用します

HTTP仕様http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2で有効な要求です。しかし、この仕様では206 Partial Contentの応答も要求されており、これにはContent-Rangeヘッダーが含まれていなければなりません。 Content-Rangeヘッダーは、バイト範囲がhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16と指定されるように指定します。私のユースケースでは、これは明らかに非常に不便です。

どのようにHTTP経由で意味論的範囲を要求しますか?

+0

あなたは 'Range'は、日付と一緒に使用することができますよろしいですか? 14.35.1項では、バイト範囲についてのみ説明します。 –

+0

私は@adriftに同意しますが、HTTP/1.1で 'Range:after 'が有効であればどこでも参照は見つけられません。もしそうであれば 'Content-Range:'ヘッダがそれに対応するように定義され、さもなければ、練習は半分しか定義されないでしょう。 – DaveRandom

+0

Httpbisの仕様には、バイト以外の範囲についての詳細がありますhttp://tools.ietf.org/html/draft-ietf-httpbis-p5-range-16 –

答えて

2

読んでいる部分14.35.1から、Rangeヘッダーは、リソースの特定の範囲のバイトを要求するために使用され、変更されたときにエンティティのグループを要求しないと言います。この場合

は、私はあなたがフィルタとして、あなたの範囲を扱い、クエリ文字列パラメータとして日付を渡す必要があります信じて:

GET /entities?modified-since=<date> 
+0

これが私の結論です。非バイト範囲は、将来の互換性のために許されるようですが、非常に不明です。 – Bendlas