Como são geradas as respostas "304 não modificadas"?
Como um navegador determina se a resposta a uma solicitação HTTP é 304?
É definido pelo navegador ou enviado do servidor?
Se enviado pelo servidor, como o servidor conhece os dados disponíveis no cache, também como define 304 como uma imagem?
Meu palpite, se é gerado pelo 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());
Estou confiando em um provedor de API de terceiros para obter dados, analisar e enviá-los para o meu banco de dados. Os dados podem ou não mudar durante cada solicitação, mas o cabeçalho sempre envia 200
. Eu não quero analisar, verificar o último ID exclusivo no banco de dados e assim por diante ... para determinar a alteração nos dados, nem comparar o resultado diretamente md5()
, sha1()
e sim , crc32()
misturar o resultado e funcionar bem, mas estou pensando sobre o algoritmo para determinar 304
.
Eu quero usar o mesmo tipo de algoritmo para determinar a alteração nos meus dados.