gpt4 book ai didi

php - 使缓存内容无效,If-Modified header ?

转载 作者:行者123 更新时间:2023-12-01 05:11:05 25 4
gpt4 key购买 nike

我遇到了一个特殊的问题:

PHP SCRIPT:

// checks If-Modified-Since header (if nothing has changed)
// Sends HTTP/1.0 304 Not Modified
// Sends Cache-control: public, must-revalidate
// exits

// if NO If-Modified-Since or something has changed
// builds content
// Sends Last-Modified: [DATE TIME]
// Sends Cache-control: public, must-revalidate
// exits

我正在使用 jQuery AJAX 尝试按需刷新内容,我尝试通过使用“beforeSend”参数更改 If-Modified-Since header 以及过去的日期时间来实现此目的。

目前发生的情况是:

  1. 已发出请求,200 OK 响应,内容新鲜
  2. 后续请求会收到 304 响应,浏览器会从缓存中提取
  3. 服务器上的内容已更改
  4. 使用修改后的 If-Modified-Since header 发出请求(不更改 URL 字符串),200 OK 响应包含新内容
  5. 后续请求(不更改 If-Modified-Since header )似乎会检索第 1 步中的旧内容

我想我的印象是,在第 4 步,浏览器内容应该已刷新,我错过了什么?

我设置了一个小测试,以便您可以尝试看看我的意思:http://tweetplenty.com/test/test2.php ...如果可以的话,请使用 FF 和 firebug,就像我使用 console.log() ...这是操作顺序:

  1. “正常”链接将向 http://tweetplenty.com/test/test.php 发出请求。不修改 if-modified-since ...使用“正常”链接的后续请求应返回 304(每 60 秒应返回 200 OK)

  2. “if-modified-since”链接将向 http://tweetplenty.com/test/test.php 发出请求。使用修改后的 if-modified-since header ,浏览器将返回新内容。

  3. 此时再次点击“正常”会返回之前缓存的数据,我认为点击“if-modified-since”链接后应该会刷新数据。

如果您想查看测试脚本本身,请访问:http://tweetplenty.com/test/test.zip

最佳答案

我认为您想要修改所有传入请求的 header 。查看 this page 上的示例 #2 .

关于php - 使缓存内容无效,If-Modified header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1295397/

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