タグ付けされた質問 「http-status-code-304」

2
「304 Not Modified」はどのように正確に機能しますか?
「304 Not Modified」応答はどのように生成されますか? ブラウザはHTTPリクエストへの応答が304かどうかをどのように判断しますか? ブラウザで設定されているか、サーバーから送信されていますか? サーバーから送信された場合、サーバーはどのようにしてキャッシュ内の使用可能なデータを認識し、どのように304を画像に設定しますか? それがブラウザによって生成された場合、私の推測: function is_modified() { return get_data_from_cache() === get_data_from_url(); } function get_data_from_cache() { return some_hash_or_xxx_function(cache_data); } function get_data_from_url() { return some_hash_or_xxx_function(new_data); } function some_hash_or_xxx_function(data) { // Do something with the data. // What is that algorithm? return result; } console.log(is_modified()); データの取得、解析、データベースへのプッシュをサードパーティのAPIプロバイダーに依存しています。データはリクエストごとに変更される場合と変更されない場合がありますが、ヘッダーは常にを送信します200。私はむしろ私のDBに最後のユニークIDをチェックして、その上で...データの変化を決定するために、また結果を直接比較、解析したくないmd5()、sha1()とcrc32()の結果をハッシュ化し、罰金を動作しますが、私は疑問を抱いています決定するアルゴリズム304。 同じ種類のアルゴリズムを使用して、データの変化を判別したいと思います。

5
NodeJS / express:キャッシュと304ステータスコード
Expressで作成されたWebサイトをリロードすると、NodeJSサーバーから304ステータスコードが送信されるため、Safari(Chromeではなく)で空白のページが表示されます。 これを解決する方法は? もちろん、これはSafariの問題である可能性もありますが、実際には他のすべてのWebサイトで正常に機能するため、NodeJSサーバーでも問題になるはずです。 ページを生成するために、私はJadeを使用していres.renderます。 更新: Safari'cache-control': 'max-age=0'がリロード時に送信するため、この問題が発生するようです。 更新2:回避策がありますが、より良い解決策はありますか?回避策: app.get('/:language(' + content.languageSelector + ')/:page', function (req, res) { // Disable caching for content files res.header("Cache-Control", "no-cache, no-store, must-revalidate"); res.header("Pragma", "no-cache"); res.header("Expires", 0); // rendering stuff here… } 更新3: したがって、完全なコード部分は現在次のとおりです。 app.get('/:language(' + content.languageSelector + ')/:page', pageHandle); function pageHandle (req, res) { var …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.