"304 Not Modified"응답은 어떻게 생성됩니까?
브라우저는 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
. 차라리 내가를 DB에 마지막으로 고유 ID를 확인하고 등등 ... 데이터의 변화를 확인하는,도 직접 결과를 비교, 분석하고 싶지 않아요 md5()
, sha1()
그리고 crc32()
그 결과를 해시 및 벌금을 작동하지만 난에 대해 궁금하네요 알고리즘을 결정 304
합니다.
동일한 종류의 알고리즘을 사용하여 데이터의 변화를 결정하고 싶습니다.