赞助商

Nginx`if_modified_since`是否仅适用于静态资源?

发布时间:2019-05-15 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了Nginx`if_modified_since`是否仅适用于静态资源?脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我似乎无法找到足够的文档.我有一个应用程序,可以生成一些动态响应,但仍然可以从Last-Modified标头中受益 – 所以我发送它.

但是,启用if_modified_since(设置为之前,每个http://nginx.org/en/docs/http/ngx_http_core_module.html#if_modified_since)似乎对非静态资源没有任何影响.例如,php,python应用程序.

这是因为Nginx不只是查看我的响应Last-Modified标头吗?因为我可以看到它们似乎设置正确,如下所示:

> GET /3.0/view.json?id=2 HTTP/1.1
> Host: xxxxxxxxxxxxx
> Accept: */*
> If-Modified-Since: Sat,02 May 2015 19:43:02 GMT
>
< HTTP/1.1 200 OK
* Server nginx/1.4.7 is not blacklisted
< Server: nginx/1.4.7
< Date: Fri,01 May 2015 19:56:05 GMT
< Content-Type: application/json; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< Last-Modified: Fri,01 May 2015 19:56:05 GMT

还是有一些我忽视的更大的东西?只是好奇如何
实现if_modified_since,与我设定期望的地方相比.我假设它只会查看响应标头,并根据需要覆盖状态.我错了吗?

最佳答案
在应用程序回复中发送Last-Modified标头是一个开始,但似乎您没有正确处理If-Modified-Since传入请求因为您的应用程序应回复304 Not Modified而不是200 OK.更改nginx上的指令仅影响由nginx直接提供的请求,即静态资源,除非您将其配置为反向代理缓存.在这种情况下,您可以提供有关此标头值的陈旧回复,因为内容将缓存一段时间而不会访问您的应用.车削< X> _cache_revalidate上将使用了If-Modified-Since标题重新验证nginx的缓存和应用程式之间的高速缓存内容,一旦它已经期满(其中,< X> =代理/ fastcgi的/ SCGI / uwsgi)

总结

以上是脚本之家为你收集整理的Nginx`if_modified_since`是否仅适用于静态资源?全部内容,希望文章能够帮你解决Nginx`if_modified_since`是否仅适用于静态资源?所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签:cachecache