2017-03-24 8 views
2

DBにアクセスしてシリアライザを使用してJSONレスポンスをレンダリングするためにDBにアクセスするrailsコントローラがある場合、どのような条件を満たす必要がありますか?Railsは304ステータスでいつ応答するかを知っていますか?

現在検索されている以前の応答を比較する必要がある場合、どのような比較ですか?

+0

質問の明確化。私は、最後のリクエスト以来、レンダリングされるデータ(ボディ)が変更されなかったとレールがどのように判断するのかを理解することに興味がありますか? – antiplayer

答えて

0

同じリクエスタからの前回の要求と現在の要求のCache-Control、Content-Location、Date、ETag、Expires、およびVaryのHTTPヘッダー値をサーバーが検索します。

すべてが、それは内容を変更し、あなたがより多くの情報のためhttps://httpstatuses.com/304を見ることができる200

を返すそうでない場合は304レスポンスを返すと同じである場合。

+0

私はまだ持っている質問は、最後のリクエストからdidntの変更で応答するJSONデータをRailsがどのように知っているのでしょうか?特に私は現在の時間に敏感なデータをシリアル化する場合。 – antiplayer

+0

Railsサーバは要求オブジェクトを調べ、前のオブジェクトと比較します。特にキャッシュ制御。リクエストでキャッシュをfalseに設定すると、毎回リフレッシュされたデータが返されます。もっと最新のデータについてはこちらをご覧くださいhttp://stackoverflow.com/questions/5502002/jquery-ajax-producing-304-responses-when-it-shouldnt –