溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

ETag改變時(shí)響應(yīng)體也會(huì)改變嗎

發(fā)布時(shí)間:2021-12-21 14:06:58 來(lái)源:億速云 閱讀:171 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“ETag改變時(shí)響應(yīng)體也會(huì)改變嗎”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“ETag改變時(shí)響應(yīng)體也會(huì)改變嗎”吧!

不一定,由服務(wù)器ETag 的生成算法決定。詳見(jiàn) 你知道 http 響應(yīng)頭中的 ETag 是如何生成的嗎

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

當(dāng)編輯文件卻未更改文件內(nèi)容時(shí),mtime 也會(huì)改變,此時(shí) etag 改變,但是文件內(nèi)容沒(méi)有更改。 

http 服務(wù)中靜態(tài)文件的 Last-Modified 根據(jù)什么生成

一般會(huì)選文件的 mtime,表示文件內(nèi)容的修改時(shí)間

nginx 也是這樣處理的,源碼見(jiàn): 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 

文件系統(tǒng)中 mtime 和 ctime 指什么,都有什么不同

linux 中,

  • mtime:     modified time 指文件內(nèi)容改變的時(shí)間戳
  • ctime:     change time 指文件屬性改變的時(shí)間戳,屬性包括     mtime。而在 windows 上,它表示的是     creation time

所以 ctime 會(huì)比 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 服務(wù)選擇 Last_Modified 時(shí)一般會(huì)選擇 mtime

到此,相信大家對(duì)“ETag改變時(shí)響應(yīng)體也會(huì)改變嗎”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI