"304 Değiştirilmedi" yanıtı nasıl üretilir?
Bir tarayıcı bir HTTP isteğine verilen yanıtın 304 olup olmadığını nasıl belirler?
Tarayıcı tarafından mı ayarlandı yoksa sunucudan mı gönderildi?
Sunucu tarafından gönderilirse, sunucu önbellekteki kullanılabilir verileri nasıl bilir, ayrıca 304'ü bir görüntüye nasıl ayarlar?
Tahminimce tarayıcı tarafından oluşturulmuşsa:
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());
Veri almak, ayrıştırmak ve veritabanına aktarmak için bir üçüncü taraf API sağlayıcısına güveniyorum. Her istek sırasında veriler değişebilir veya değişmeyebilir, ancak başlık her zaman gönderir 200
. Doğrusu ben DB geçen Benzersiz kimliği kontrol ve benzeri ... verilerdeki değişimi belirlemek için, ne de doğrudan sonucu karşılaştırmak, ayrıştırmak istemiyorum md5()
, sha1()
ve crc32()
sonuç karma ve cezası çalışır, ancak bunu merak ediyorum belirlemek için algoritma 304
.
Verilerimdeki değişikliği belirlemek için aynı tür algoritmayı kullanmak istiyorum.