gpt4 book ai didi

http - "304 Not Modified"究竟是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 15:03:06 26 4
gpt4 key购买 nike

  • “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 提供商来获取数据、解析并将其推送到我的数据库。数据在每次请求期间可能会或可能不会更改,但 header 始终发送 200。我不想解析、检查数据库中的最后一个唯一 ID 等等...以确定数据的变化,也不想直接比较结果,而是 md5(), sha1( )crc32() 对结果进行哈希处理并且工作正常,但我想知道确定 304 的算法。

我想使用相同类型的算法来确定我的数据的变化。

最佳答案

当浏览器将某些内容放入缓存时,它还会存储来自服务器的 Last-ModifiedETag header 。

然后浏览器发送带有If-Modified-SinceIf-None-Match header 的请求,告诉服务器如果内容仍然有则发送 304该日期或 ETag。

服务器需要某种方法来计算每个资源的每个版本的修改日期或 ETag;这通常来自文件系统或单独的数据库列。

关于http - "304 Not Modified"究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com