想请教下上游服务器怎么通知nginx缓存的内容发生改变了呢?

想请教下上游服务器怎么通知nginx缓存的内容发生改变了呢?

1、浏览器请求到nginx的静态资源文件时,会缓存到浏览器本地,这个时候再请求静态资源文件,浏览器会请求nginx看内容是否发生改变来决定是重新请求资源文件还是直接用浏览器的缓存。这个理解对嘛?

2、然后如果是请求的上游服务器的静态资源文件,上游服务器的静态资源文件缓存到了nginx,如果这个时候上游服务器的内容发生了改变,nginx是怎么知道上游服务器的静态资源文件发生了改变呢?麻烦大佬讲解一下。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
malang 2019-12-27 14:54:26

根据我的理解,不是这样的,不管是浏览器缓存还是nginx缓存上游服务器,他们都有一个有效的缓存时间,过了这个时间才会重新请求资源文件,而不是每次都要预先请求资源是否发生变动信息。

  • 提问者 夏至墨汁 #1
    可是课程里在重复请求nginx的静态资源文件时,会返回一个304的状态码,表示是有请求的,老师也是这么说的。意思就是你请求的内容并没有发生改变,你可以直接用缓存吧。
    2019-12-27 15:23:18
  • malang 回复 提问者 夏至墨汁 #2
    客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。服务端只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。
    2019-12-27 15:52:14
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师