「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
。
同じ種類のアルゴリズムを使用して、データの変化を判断したいと考えています。