gpt4 book ai didi

php - Web中数据缓存的机制是什么?

转载 作者:可可西里 更新时间:2023-11-01 16:24:35 27 4
gpt4 key购买 nike

我曾经认为缓存是浏览器驱动的,如果他们认为数据重复但浏览器不会再次请求相同的文件但是在网络上阅读一些文本,我意识到是网站告诉浏览器不应该请求哪些文件两次。

有人可以澄清一下吗?

最佳答案

没错。它由 HTTP Cache-Control 控制和 Expires标题。

第一个基本上是告诉客户端缓存策略。第二个基本上告诉客户端缓存策略的过期时间(即在获得新响应和/或丢弃缓存响应之前坚持缓存策略多长时间)。

网络服务器通常会发送一组默认的 header 。您可以在服务器配置中永久设置/覆盖这些 header ,或者在 PHP 中使用 header() 根据请求设置/覆盖这些 header 。功能。以下示例指示客户端从不缓存响应。

header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

Pragma header 用于确保与尚不支持 Cache-Control(在 HTTP 1.1 中引入)的旧 HTTP 1.0 客户端兼容。

当缓存已过期且缓存响应包含 Last-Modified 时和/或 ETag header ,然后客户端可以使用 If-Modified-Since 触发有条件的 GET 请求和/或 If-None-Match .每当 If-Modified-Since 和/或 If-None-Match 条件为正时,服务器将发送 304 "Not Modified"没有任何内容的回复。如果发生这种情况,则允许客户端将当前缓存的内容保留在缓存中并更新 header 。

关于php - Web中数据缓存的机制是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3310441/

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