瀏覽器緩存

HTTP 1.0

在HTTP1.0中膀哲,可以在服務(wù)端設(shè)置 Expires 的HTTP頭來告訴客戶端在多久之后重新請(qǐng)求服務(wù)造壮,可以通過 if-modified-since 的條件請(qǐng)求來使用緩存竞惋,其中發(fā)送時(shí)間是文件最初被下載的時(shí)間嗓蘑,而不是過期時(shí)間源祈。如果文件沒有改變榆苞,服務(wù)器可以響應(yīng) 304-Not Modified 表示文件未改變,客戶端可以繼續(xù)使用緩存的文件喉刘。

HTTP1.0中服務(wù)器在返回時(shí)瞧柔,可以通過在響應(yīng)頭中添加 Last-Modified 的方式表示資源上一次更改時(shí)間漆弄。請(qǐng)求時(shí)傳遞的if-modified-since值就是Last-Modified的值睦裳。但是這個(gè)時(shí)間僅僅只能代表編輯時(shí)間,如果文件內(nèi)容沒有變化撼唾,一樣會(huì)修改這個(gè)時(shí)間廉邑,所以再次請(qǐng)求還是會(huì)重新加載資源,而不會(huì)使用緩存倒谷。

HTTP 1.1

引入了文件標(biāo)簽 e-tag 蛛蒙,e-tag 是文件或?qū)ο蟮奈ㄒ粯?biāo)識(shí),也就是一個(gè)MD5值渤愁,e-tag通過Response Heasers 返回牵祟。e-tag 在使用時(shí)會(huì)結(jié)合 If-None-Match 搭配使用,當(dāng)緩存過期時(shí)抖格,瀏覽器會(huì)在請(qǐng)求頭中設(shè)置 If-None-Match,值服務(wù)端返回的e-tag值(MD5),當(dāng)文件未發(fā)生變化時(shí)诺苹,MD5值是不變的咕晋,此時(shí)服務(wù)端可以響應(yīng) 304 狀態(tài)碼,瀏覽器繼續(xù)使用本地緩存收奔,如果返回200掌呜,則服務(wù)器返回新的文件和新的 e-tag值。

HTTP1.1中還增加了新的緩存控制參數(shù)坪哄,就是Cache-Control,在瀏覽器請(qǐng)求服務(wù)器資源時(shí)設(shè)置质蕉。如下就是Cache-Control的使用案例,表示這個(gè)Response緩存時(shí)間是0翩肌,也就是說每次請(qǐng)求都會(huì)重新獲取資源模暗,不會(huì)使用緩存。

cache-control: max-age=0

Cache-Control 的優(yōu)先級(jí)高于 Expires ,當(dāng)同時(shí)設(shè)置時(shí)念祭,使用 Cache-Control 的設(shè)置來判斷汰蓉。cache-control可以設(shè)置的參數(shù)有多個(gè),而且請(qǐng)求頭和響應(yīng)頭的可選參數(shù)是不一樣的棒卷。

請(qǐng)求頭中Cache-Control可選參數(shù)

字段名字 參數(shù) 說明
no-cache 告知(代理)服務(wù)器不使用緩存顾孽,強(qiáng)制向服務(wù)器發(fā)起請(qǐng)求
no-store 不緩存請(qǐng)求或相應(yīng)的任何內(nèi)容
max-age=seconds 必須,單位:秒 告知服務(wù)器客戶端希望接收一個(gè)存在時(shí)間不大于(seconds)的資源
max-stale(=seconds) 可省略比规,單位:秒 告知服務(wù)器愿意接收一個(gè)超過緩存時(shí)間的資源若厚,如果有指定seconds,則值為seconds蜒什,沒有指定則表示任意超出時(shí)間
min-refresh=seconds 必須测秸,單位,秒 告知服務(wù)器希望接收一個(gè)在小于seconds秒內(nèi)被更新過的資源
no-transform 告知服務(wù)器客戶端希望獲取實(shí)體數(shù)據(jù)沒有被轉(zhuǎn)換的資源(比如不被壓縮)
only-if-cached 告知服務(wù)器客戶端希望獲取緩存的內(nèi)容灾常,如果存在緩存霎冯,則不用向源服務(wù)器發(fā)去請(qǐng)求
cache-extension - 自定義擴(kuò)展值,若服務(wù)器不識(shí)別該值將被忽略掉

響應(yīng)頭中Cache-Control可選參數(shù)

字段名字 說明
public 表明任何情況下都得緩存該資源(即使是需要HTTP認(rèn)證的資源)
private[="filed-name"] 可省略 表明趕回報(bào)文中全部或部分(若指定了filed-name則為filed-name的字段數(shù)據(jù))<br />僅開放給某些用戶(服務(wù)器指定的share-user钞瀑,如代理服務(wù)器)做緩存使用沈撞,<br />其他用戶則不能緩存這些數(shù)據(jù)
no-cache 可省略 不直接使用緩存,要向服務(wù)器確認(rèn)有效性
no-store 不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
no-transform 代理不可更改媒體類型
must-revalidate 當(dāng)前資源一定是向源服務(wù)器發(fā)起請(qǐng)求驗(yàn)證有效性的雕什,若請(qǐng)求失敗返回504
proxy-revalidate 要求代理緩存服務(wù)器對(duì)緩存有效性進(jìn)行再次確認(rèn)
max-age=seconds 必須缠俺,單位:秒 告知客戶端該資源的有效時(shí)間
s-maxage=seconds 必須,單位:秒 公共緩存服務(wù)器相應(yīng)的最大age值
cache-extension - 自定義擴(kuò)展值贷岸,如果瀏覽器不識(shí)別該值將被忽略

需要注意的是以上這些參數(shù)都是需要使用HTTP1.1及以上才有用的壹士,其中no-store的優(yōu)先級(jí)最高。

常見的HTTP狀態(tài)碼

內(nèi)容源自菜鳥教程偿警,個(gè)人整理所需躏救,無意侵權(quán),源地址:
https://www.runoob.com/http/http-status-codes.html

狀態(tài)碼 英文名稱 描述
200 OK 請(qǐng)求成功螟蒸。一般用于GET與POST請(qǐng)求
202 Accepted 已接受盒使。已經(jīng)接受請(qǐng)求睁本,但未處理完成
203 Non-Authoritative Information 非授權(quán)信息。請(qǐng)求成功忠怖。但返回的meta信息不在原始的服務(wù)器呢堰,而是一個(gè)副本
205 Reset Content 重置內(nèi)容。服務(wù)器處理成功凡泣,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖枉疼。可通過此返回碼清除瀏覽器的表單域
304 Not Modified 未修改鞋拟。所請(qǐng)求的資源未修改骂维,服務(wù)器返回此狀態(tài)碼時(shí),不會(huì)返回任何資源贺纲『焦耄客戶端通常會(huì)緩存訪問過的資源,通過提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源
305 Use Proxy 用代理猴誊。所請(qǐng)求的資源必須通過代理訪問
400 Bad Request 客戶端請(qǐng)求的語法錯(cuò)誤潦刃,服務(wù)器無法理解
401 Unauthorized 請(qǐng)求要求用戶的身份認(rèn)證
403 Forbidden 服務(wù)器理解請(qǐng)求客戶端的請(qǐng)求,但是拒絕執(zhí)行此請(qǐng)求
404 Not Found 服務(wù)器無法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁)懈叹。通過此代碼乖杠,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請(qǐng)求的資源無法找到"的個(gè)性頁面
405 Method Not Allowed 客戶端請(qǐng)求中的方法被禁止
406 Not Acceptable 服務(wù)器無法根據(jù)客戶端請(qǐng)求的內(nèi)容特性完成請(qǐng)求
408 Request Time-out 服務(wù)器等待客戶端發(fā)送的請(qǐng)求時(shí)間過長,超時(shí)
500 Internal Server Error 服務(wù)器內(nèi)部錯(cuò)誤澄成,無法完成請(qǐng)求
502 Bad Gateway 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請(qǐng)求時(shí)胧洒,從遠(yuǎn)程服務(wù)器接收到了一個(gè)無效的響應(yīng)
503 Service Unavailable 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)的無法處理客戶端的請(qǐng)求墨状。延時(shí)的長度可包含在服務(wù)器的Retry-After頭信息中
504 Gateway Time-out 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器卫漫,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請(qǐng)求

參考內(nèi)容:

上野宣《圖解HTTP》

https://blog.csdn.net/u012375924/article/details/82806617
http://www.reibang.com/p/cd9f28d35727
https://www.runoob.com/http/http-status-codes.html

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肾砂,一起剝皮案震驚了整個(gè)濱河市列赎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌通今,老刑警劉巖粥谬,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛根,死亡現(xiàn)場離奇詭異辫塌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)派哲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門臼氨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人芭届,你說我怎么就攤上這事储矩「邪遥” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵持隧,是天一觀的道長即硼。 經(jīng)常有香客問我,道長屡拨,這世上最難降的妖魔是什么只酥? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮呀狼,結(jié)果婚禮上裂允,老公的妹妹穿的比我還像新娘。我一直安慰自己哥艇,他們只是感情好绝编,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著貌踏,像睡著了一般十饥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祖乳,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天绷跑,我揣著相機(jī)與錄音,去河邊找鬼凡资。 笑死砸捏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隙赁。 我是一名探鬼主播垦藏,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼伞访!你這毒婦竟也來了掂骏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤厚掷,失蹤者是張志新(化名)和其女友劉穎弟灼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體冒黑,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡田绑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抡爹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掩驱。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出欧穴,到底是詐尸還是另有隱情民逼,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布涮帘,位于F島的核電站拼苍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏调缨。R本人自食惡果不足惜映屋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望同蜻。 院中可真熱鬧棚点,春花似錦、人聲如沸湾蔓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽默责。三九已至贬循,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桃序,已是汗流浹背杖虾。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留媒熊,地道東北人奇适。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像芦鳍,于是被迫代替她去往敵國和親嚷往。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容