Comment les réponses «304 Non modifié» sont-elles générées?
Comment un navigateur détermine-t-il si la réponse à une requête HTTP est 304?
Est-il défini par le navigateur ou envoyé depuis le serveur?
S'il est envoyé par le serveur, comment le serveur connaît-il les données disponibles dans le cache, et comment définit-il 304 sur une image?
Je suppose, s'il est généré par le navigateur:
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());
Je compte sur un fournisseur d'API tiers pour obtenir des données, les analyser et les envoyer dans ma base de données. Les données peuvent ou non changer à chaque demande, mais l'en-tête envoie toujours 200
. Je ne veux pas analyser, vérifier le dernier identifiant unique dans DB et ainsi de suite ... pour déterminer le changement de données, ni comparer directement le résultat plutôt que moi md5()
, sha1()
et crc32()
hacher le résultat et fonctionne bien, mais je m'interroge sur le algorithme à déterminer 304
.
Je souhaite utiliser le même type d'algorithme pour déterminer le changement de mes données.