极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。
每天晚上九点 B站讲解前端工程化直播,并解答相关问题。

# 如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已经更改

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 113 (opens new window)

不一定,由服务器中 ETag 的生成算法决定。详见 #112 (opens new window)

比如 nginx 中的 etaglast_modifiedcontent_length 组成,而 last_modified 又由 mtime 组成

当编辑文件却未更改文件内容时,或者 touch filemtime 也会改变,此时 etag 改变,但是文件内容没有更改。

比如 nginx 中的 etag 由 last_modified 与 content_length 组成,而 last_modified 又由 mtime 组成。

那 Etag 是怎么解决 last_modified,当编辑文件却未更改文件时间的问题?

比如 nginx 中的 etag 由 last_modified 与 content_length 组成,而 last_modified 又由 mtime 组成。

那 Etag 是怎么解决 last_modified,当编辑文件却未更改文件时间的问题?

  1. 此时文件大小有可能发生更改,ETag 会改变
  2. 此时文件大小没有发生更改,ETag 不会改变。但这需要极其苛刻的条件:1s 内更改文件,并且保持文件大小不变。这种情况出现概率很低,因此忽略了
Last Updated: 11/27/2021, 10:11:48 AM