加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:25:56 所属栏目:Nginx 来源:网络整理
导读:我似乎无法找到足够的文档.我有一个应用程序,可以生成一些动态响应,但仍然可以从Last-Modified标头中受益 所以我发送它. 但是,启用if_modified_since(设置为之前,每个http://nginx.org/en/docs/http/ngx_http_core_module.html#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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读