Як формуються відповіді "304 не змінені"?
Як браузер визначає, чи відповідає відповідь на запит HTTP 304?
Це встановлюється браузером або надсилається з сервера?
Якщо сервер надсилається, як сервер знає дані, доступні в кеші, а також як він встановлює зображення 304?
Думаю, якщо він генерується браузером:
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());
Я покладаюся на стороннього постачальника API, щоб отримати дані, проаналізувати та передати їх до моєї бази даних. Дані можуть або не можуть змінюватися під час кожного запиту, але заголовок завжди надсилається 200
. Я не хочу розбирати, перевіряти останній унікальний ідентифікатор у БД і так далі ... щоб визначити зміну даних, ні порівняти результат безпосередньо, а не я md5()
, sha1()
і crc32()
хешировав результат і працює добре, але мені цікаво про алгоритм визначення 304
.
Я хочу використовувати такий же алгоритм, щоб визначити зміну моїх даних.