如何缓存wp_remote_get响应以生成响应代码304

时间:2015-10-10 12:46:01

标签: php wordpress caching

我正在使用WordPress的wp_remote_get()方法从API服务器检索一些内容。数据按预期返回,但响应代码始终为200 OK。

我需要的是,在未修改数据时获取响应代码304。

如果我在网络浏览器中直接打开API网址,它肯定会在后续请求中发送304响应。我已经使用chrome开发工具验证了这一点。

但是,当我使用PHP代码获取URL的内容时,响应总是200 OK

最重要的是,如果数据未被修改,我不想从API获取数据。很明显,如果浏览器没有缓存该请求,我可能需要某种缓存。

棘手的部分是,请求每次都是从PHP服务器生成的,我不确定在生成此类请求之前,PHP是否有可能与浏览器缓存进行通信。

我也试过curl,但响应代码总是200。

1 个答案:

答案 0 :(得分:1)

您需要添加请求标头If-Modified-Since,例如:

If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

您可能还希望包含Cache-Control标头,该标头必须通过任何代理传递(尽管HTTP / 1.0缓存可能不支持):

Cache-Control: max-age=31536000

有关详细信息,请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

上标题的HTTP / 1.1参考部分