我正在使用WordPress的wp_remote_get()方法从API服务器检索一些内容。数据按预期返回,但响应代码始终为200 OK。
我需要的是,在未修改数据时获取响应代码304。
如果我在网络浏览器中直接打开API网址,它肯定会在后续请求中发送304响应。我已经使用chrome开发工具验证了这一点。
但是,当我使用PHP代码获取URL的内容时,响应总是200 OK
最重要的是,如果数据未被修改,我不想从API获取数据。很明显,如果浏览器没有缓存该请求,我可能需要某种缓存。
棘手的部分是,请求每次都是从PHP服务器生成的,我不确定在生成此类请求之前,PHP是否有可能与浏览器缓存进行通信。
我也试过curl,但响应代码总是200。
答案 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参考部分