(譯)使用 meta 禁用瀏覽器緩存

原文

一個最簡單的支持大部分主流瀏覽器的 headers 集如下:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
  • Cache-Control 作用于 HTTP1.1

HTTP1.1中啟用Cache-Control 來控制頁面的緩存與否,這里介紹幾個常用的參數(shù):

  • no-cache,瀏覽器和緩存服務器都不應該緩存頁面信息窒所;
  • public,瀏覽器和緩存服務器都可以緩存頁面信息迹栓;
  • no-store,請求和響應的信息都不應該被存儲在對方的磁盤系統(tǒng)中俭缓;
  • must-revalidate克伊,對于客戶機的每次請求,代理服務器必須想服務器驗證緩存是否過時
  • Pragma 作用于 HTTP 1.0

HTTP1.0 中通過 Pragma 控制頁面緩存华坦,通常設置的值為 no- cache愿吹,不過這個值不這么保險,通常還加上 Expires 置為 0 來達到目的惜姐。但是如我們刻意需要瀏覽器或緩存服務器緩存住我們的頁面這個值則要設置為 Pragma犁跪。

  • Expires 作用于 proxies

表示存在時間,允許客戶端在這個時間之前不去檢查(發(fā)請求)歹袁,等同 max-age 的 效果坷衍。但是如果同時存在,則被 Cache-Controlmax-age 覆蓋条舔。 格式: Expires :時間枫耳,后面跟一個時間或者日期,超過這個時間后緩存失效孟抗。也就是瀏覽器發(fā)出請求之前迁杨,會檢查這個時間是否失效钻心,若失效,則瀏覽器會重新發(fā)出請求仑最。

HTML

通過添加 <meta> 標簽來禁止瀏覽器緩存(代碼必須包含在 <head> 標簽中)

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

其他環(huán)境的設置

  • .htaccess (Apache)
<IfModule mod_headers.c>
  Header set Cache-Control "no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires 0
</IfModule>
  • Java Servlet
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
  • PHP
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
  • ASP
Response.addHeader "Cache-Control", "no-cache, no-store, must-revalidate"
Response.addHeader "Pragma", "no-cache"
Response.addHeader "Expires", "0"
  • ASP.NET
Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate");
Response.AppendHeader("Pragma", "no-cache");
Response.AppendHeader("Expires", "0");
  • Ruby on Rails
response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate'
response.headers['Pragma'] = 'no-cache'
response.headers['Expires'] = '0'
  • Python on Flask
resp.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
resp.headers["Pragma"] = "no-cache"
resp.headers["Expires"] = "0"
  • Google Go
responseWriter.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
responseWriter.Header().Set("Pragma", "no-cache")
responseWriter.Header().Set("Expires", "0")

Resources

后記

上述方案對于 Safari 并無鳥用扔役,一種比較正規(guī)的方案是:

    $(window).bind("pageshow", function (event) {
        if (event.originalEvent.persisted) {
            window.location.reload();
        }
    });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帆喇,一起剝皮案震驚了整個濱河市警医,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坯钦,老刑警劉巖预皇,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異婉刀,居然都是意外死亡吟温,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門突颊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲁豪,“玉大人,你說我怎么就攤上這事律秃∨老穑” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵棒动,是天一觀的道長竿报。 經(jīng)常有香客問我瓤鼻,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任荠割,我火速辦了婚禮,結(jié)果婚禮上疫衩,老公的妹妹穿的比我還像新娘钮呀。我一直安慰自己,他們只是感情好怜浅,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布铐然。 她就那樣靜靜地躺著,像睡著了一般海雪。 火紅的嫁衣襯著肌膚如雪锦爵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天奥裸,我揣著相機與錄音险掀,去河邊找鬼。 笑死湾宙,一個胖子當著我的面吹牛樟氢,可吹牛的內(nèi)容都是我干的冈绊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼埠啃,長吁一口氣:“原來是場噩夢啊……” “哼死宣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碴开,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤毅该,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后潦牛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眶掌,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年巴碗,在試婚紗的時候發(fā)現(xiàn)自己被綠了朴爬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡橡淆,死狀恐怖召噩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逸爵,我是刑警寧澤具滴,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站痊银,受9級特大地震影響抵蚊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜溯革,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一贞绳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧致稀,春花似錦冈闭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至矛绘,卻和暖如春耍休,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背货矮。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工羊精, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人囚玫。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓喧锦,卻偏偏與公主長得像读规,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子燃少,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

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

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5束亏? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 27,423評論 1 45
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理阵具,服務發(fā)現(xiàn)碍遍,斷路器,智...
    卡卡羅2017閱讀 134,600評論 18 139
  • php.ini設置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,736評論 3 64
  • 淺談瀏覽器Http的緩存機制 ? ? ? ? ? ? ? ? 針對瀏覽器的http緩存的分析也算是老生常談了怔昨,每隔...
    meng_philip123閱讀 998評論 0 10
  • 針對瀏覽器的http緩存的分析也算是老生常談了雀久,每隔一段時間就會冒出一篇不錯的文章,其原理也是各大公司面試時幾乎必...
    全端玩法閱讀 874評論 0 9