¿Cómo se generan las respuestas "304 no modificadas"?
¿Cómo determina un navegador si la respuesta a una solicitud HTTP es 304?
¿Es configurado por el navegador o enviado desde el servidor?
Si lo envía el servidor, ¿cómo sabe el servidor los datos disponibles en caché, y también cómo establece 304 en una imagen?
Mi conjetura, si es generado por el navegador:
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());
Confío en un proveedor de API externo para obtener datos, analizarlos y enviarlos a mi base de datos. Los datos pueden o no cambiar durante cada solicitud, pero el encabezado siempre envía 200
. No quiero analizar, verificar la última ID única en DB y así sucesivamente ... para determinar el cambio en los datos, ni comparar el resultado directamente en lugar de yo md5()
, sha1()
y crc32()
el resultado hash y funciona bien, pero me pregunto sobre el algoritmo para determinar 304
.
Quiero usar el mismo tipo de algoritmo para determinar el cambio en mis datos.