Wie werden "304 nicht geändert" -Antworten generiert?
Wie ermittelt ein Browser, ob die Antwort auf eine HTTP-Anfrage 304 lautet?
Wird es vom Browser eingestellt oder vom Server gesendet?
Woher kennt der Server die im Cache verfügbaren Daten, wenn er vom Server gesendet wird, und wie setzt er 304 auf ein Image?
Meine Vermutung, wenn es vom Browser generiert wird:
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());
Ich verlasse mich auf einen Drittanbieter-API-Anbieter, um Daten abzurufen, zu analysieren und in meine Datenbank zu übertragen. Die Daten können sich während jeder Anforderung ändern oder nicht, aber der Header sendet immer 200
. Ich möchte nicht analysieren, die letzte eindeutige ID in der Datenbank überprüfen und so weiter ... um die Änderung der Daten zu bestimmen, noch das Ergebnis direkt vergleichen, sondern ich md5()
, sha1()
und crc32()
das Ergebnis hashen und funktioniert einwandfrei, aber ich wundere mich über die Algorithmus zu bestimmen 304
.
Ich möchte dieselbe Art von Algorithmus verwenden, um die Änderung meiner Daten zu bestimmen.