Bagaimana tanggapan "304 Tidak Dimodifikasi" dihasilkan?
Bagaimana cara browser menentukan apakah respons terhadap permintaan HTTP adalah 304?
Apakah diatur oleh browser atau dikirim dari server?
Jika dikirim oleh server, bagaimana server mengetahui data yang tersedia dalam cache, juga bagaimana cara mengatur 304 ke gambar?
Dugaan saya, jika itu dihasilkan oleh browser:
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());
Saya mengandalkan penyedia API pihak ketiga untuk mendapatkan data, parsing & dorong ke basis data saya. Data mungkin atau mungkin tidak berubah selama setiap permintaan, tetapi tajuk selalu mengirim 200
. Saya tidak ingin menguraikan, periksa ID Unik terakhir di DB dan seterusnya ... untuk menentukan perubahan data, atau membandingkan hasilnya secara langsung, bukan saya md5()
, sha1()
dan crc32()
mengait hasilnya dan berfungsi dengan baik, tapi saya ingin tahu tentang algoritma untuk menentukan 304
.
Saya ingin menggunakan jenis algoritma yang sama untuk menentukan perubahan data saya.