Come vengono generate le risposte "304 non modificate"?
In che modo un browser determina se la risposta a una richiesta HTTP è 304?
È impostato dal browser o inviato dal server?
Se inviato dal server, come fa il server a conoscere i dati disponibili nella cache, come imposta 304 su un'immagine?
Immagino, se è generato dal 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());
Mi affido a un provider API di terze parti per ottenere dati, analizzarli e inviarli al mio database. I dati possono cambiare o meno durante ogni richiesta, ma l'intestazione viene sempre inviata 200
. Non voglio analizzare, controllare l'ultimo ID univoco nel DB e così via ... per determinare la modifica dei dati, né confrontare il risultato direttamente piuttosto che io md5()
, sha1()
e ho crc32()
eseguito il hash del risultato e funziona bene, ma mi chiedo del algoritmo da determinare 304
.
Voglio utilizzare lo stesso tipo di algoritmo per determinare la modifica dei miei dati.