当前位置: 首页 > 知识库问答 >
问题:

“304不改装”到底是怎么运作的?

洪英豪
2023-03-14

> < li>

如何生成“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提供商来获取数据,解析

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

共有2个答案

百里金林
2023-03-14

Last-Modified:请求对象的最后修改日期

如果上次修改日期不变,则允许返回304 Not Modified。

ETag:ETag是Web服务器分配给在URL上找到的资源的特定版本的不透明标识符。如果该URL的资源表示形式发生变化,则会分配一个新的和不同的ETag。

如果无匹配:如果ETag不变,则允许返回304 Not Modified。

浏览器存储带有日期(Last-Modified)或id(ETag)的缓存,当需要再次请求URL时,浏览器发送带有标头的请求消息:

当if语句为假时,服务器将返回304,浏览器将使用缓存。

呼延骏俊
2023-03-14

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

然后,浏览器发送一个带有< code>If-Modified-Since或< code>If-None-Match报头的请求,告诉服务器如果内容仍然具有该日期或ETag,则发送304。

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

 类似资料:
  • 有人给我发了这个,声称这是Brainfuck中的hello world(我希望如此…) 我知道它的基本原理是通过移动指针和递增或递减来工作。。。 但我还是想知道,它到底是如何工作的?它首先是如何在屏幕上打印任何东西的?它是如何编码文本的?我完全不明白。。。

  • 两个都不起作用。有人能告诉我为什么或者在雪花中这样做的正确方式是什么吗?提前感谢!

  • 主要内容:JSP的由来,Servlet与JSP异同点,JSP相对于Servlet的优点JSP(Java Server Pages)是一种动态网页开发技术。JSP 文件就是在传统的 HTML 文件中插入 Java 代码和 JSP 标签,后缀名为 。 JSP 与 PHP、ASP、ASP.NET 等语言类似,都运行在服务端。通常返回给客户端的就是一个 HTML 文件,因此只要有浏览器就能查看 JSP 页面。 JSP 使用 JSP 标签在 HTML 网页中插入 Java 代码,标签通常以

  • 直到我在旧存储库中随机检查 ,我才听说过这个文件,它就是一个我自己没有编辑过也从未见过的文件。我不知道它是如何到达那里的。 似乎很常见 - 主要是如何删除它(例如这里和这里)。 这个文件是什么,是什么创建了它?

  • 基本上,为什么有这个术语? 还有,接口是什么意思?

  • 译者:lhc741 作者:Jeremy Howard,fast.ai。感谢Rachel Thomas和Francisco Ingham的帮助和支持。 我们推荐使用notebook来运行这个教程,而不是脚本,点击这里下载notebook(.ipynb)文件。 Pytorch提供了torch.nn、torch.optim、Dataset和DataLoader这些设计优雅的模块和类以帮助使用者创建和训练