本篇内容主要讲解“ETag改变时响应体也会改变吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ETag改变时响应体也会改变吗”吧!
不一定,由服务器中 ETag
的生成算法决定。详见 你知道 http 响应头中的 ETag 是如何生成的吗
比如 nginx
中的 etag
由 last_modified
与 content_length
组成,而 last_modified
又由 mtime
组成
当编辑文件却未更改文件内容时,mtime
也会改变,此时 etag
改变,但是文件内容没有更改。
一般会选文件的 mtime
,表示文件内容的修改时间
nginx
也是这样处理的,源码见: ngx_http_static_module.c[1]
r->headers_out.status = NGX_HTTP_OK;
r->headers_out.content_length_n = of.size;
r->headers_out.last_modified_time = of.mtime;
那为什么使用 mtime
而非 ctime
在 linux
中,
mtime
:
modified time
指文件内容改变的时间戳ctime
:
change time
指文件属性改变的时间戳,属性包括
mtime
。而在 windows 上,它表示的是
creation time
所以 ctime
会比 mtime
要大一些,使用 stat
查看文件属性如下
$ stat hello.txt
File: ‘hello.txt’
Size: 30 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 917526 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-12-10 16:15:55.253325208 +0800
Modify: 2019-12-10 16:15:52.740653330 +0800
Change: 2019-12-10 16:15:52.742653069 +0800
Birth: -
而 http 服务选择 Last_Modified
时一般会选择 mtime
到此,相信大家对“ETag改变时响应体也会改变吗”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。