มีการสร้างคำตอบ "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
แต่ส่วนหัวจะส่ง ฉันไม่ต้องการที่จะแยกตรวจสอบ ID ที่ไม่ซ้ำสุดท้ายใน DB และอื่น ๆ ... เพื่อตรวจสอบการเปลี่ยนแปลงในข้อมูลหรือเปรียบเทียบผลโดยตรงค่อนข้างฉันmd5()
, sha1()
และcrc32()
ถกผลและผลงานดี แต่ฉันสงสัยเกี่ยวกับ 304
ขั้นตอนวิธีการในการกำหนด
ฉันต้องการใช้อัลกอริทึมชนิดเดียวกันเพื่อพิจารณาการเปลี่ยนแปลงข้อมูลของฉัน