如果 http 响应头中 ETag 值改变了,是否意味着文件内容一定已经更改
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 113
Author 回答者: shfshanyue
不一定,由服务器中 ETag
的生成算法决定。详见 #112
比如 nginx
中的 etag
由 last_modified
与 content_length
组成,而 last_modified
又由 mtime
组成
当编辑文件却未更改文件内容时,或者 touch file
,mtime
也会改变,此时 etag
改变,但是文件内容没有更改。
Author 回答者: collins999
比如 nginx 中的 etag 由 last_modified 与 content_length 组成,而 last_modified 又由 mtime 组成。
那Etag是怎么解决last_modified,当编辑文件却未更改文件时间的问题?
Author 回答者: shfshanyue
比如 nginx 中的 etag 由 last_modified 与 content_length 组成,而 last_modified 又由 mtime 组成。
那Etag是怎么解决last_modified,当编辑文件却未更改文件时间的问题?
- 此时文件大小有可能发生更改,ETag 会改变
- 此时文件大小没有发生更改,ETag 不会改变。但这需要极其苛刻的条件:1s 内更改文件,并且保持文件大小不变。这种情况出现概率很低,因此忽略了