国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net 客戶端瀏覽器緩存的Http頭介紹

2024-07-10 12:38:41
字體:
來源:轉載
供稿:網友
讓瀏覽器做緩存需要給瀏覽器發送指定的Http頭,告訴瀏覽器緩存多長時間,或者堅決不要緩存。作為.net的程序員,其實我們一直都在用這種方法,在OutputCache指令中指定緩存的Location為Client時,其實就是給瀏覽器發送了一個Http頭,告訴瀏覽器這個Url要緩存多長時間,最后修改的時間。

微軟在OutputCacheModule中對這些緩存用到的Http頭給我們進行了很好的封裝,但是了解這些Http頭可以更靈活的使用它們。

和客戶端緩存相關的Http頭有以下幾個,分別是:

1. Expires:+過期時間
表示在指定時間后瀏覽器緩存失效,需要注意的是這兒的過期時間必須是HTTP格式的日期時間,其他的都會被解析成當前時間“之前”,緩存會馬上過期,HTTP的日期時間必須是格林威治時間(GMT),而不是本地時間。舉例:
代碼如下:
Expires: Fri, 30 Oct 2009 14:19:41

使用Expires過期必須要求服務器的時間是正確的,否則發送的http頭就會出問題,在windows服務下可以設置時間服務器來同步時間。

2. Cache-control:
Cache-control直譯成中文就是緩存控制,它的作用就是緩存控制,這個http頭的值有幾種。
1) max-age=[秒] — 執行緩存被認為是最新的最長時間。類似于過期時間,這個參數是基于請求時間的相對時間間隔,而不是絕對過期時間,[秒]是一個數字,單位是秒:從請求時間開始到過期時間之間的秒數。
2) s-maxage=[秒] — 類似于max-age屬性,除了他應用于共享(如:代理服務器)緩存
3) public — 標記認證內容也可以被緩存,一般來說: 經過HTTP認證才能訪問的內容,輸出是自動不可以緩存的;
4) no-cache — 強制每次請求直接發送給源服務器,而不經過本地緩存版本的校驗。這對于需要確認認證應用很有用(可以和public結合使用),或者嚴格要求使用最新數據的應用(不惜犧牲使用緩存的所有好處);
5) no-store — 強制緩存在任何情況下都不要保留任何副本
6) must-revalidate — 告訴緩存必須遵循所有你給予副本的新鮮度的,HTTP允許緩存在某些特定情況下返回過期數據,指定了這個屬性,你高速緩存,你希望嚴格的遵循你的規則。
7) proxy-revalidate — 和 must-revalidate類似,除了他只對緩存代理服務器起作用
舉例:
代碼如下:
Cache-Control: max-age=3600, must-revalidate

很顯然Cache-control可以提供比Expires更靈活的緩存控制,而且它不需要依賴于服務器時間。
在Asp.Net中微軟把對Cache-control屬性的設置封裝到了HttpCachePolicy類中,我們可以通過Response.Cache來調用以下方法來做到對Cache-Control Http頭值的控制:
代碼如下:
Response.CacheControl;
Response.Cache.SetNoStore
Response.Cache.SetMaxAge
Response.Cache.SetProxyMaxAge
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃园县| 达拉特旗| 芜湖市| 辽宁省| 陇川县| 潼南县| 新营市| 仙桃市| 府谷县| 西乡县| 油尖旺区| 无为县| 安宁市| 蓬溪县| 平利县| 黑河市| 油尖旺区| 成都市| 高陵县| 蕉岭县| 繁昌县| 绥棱县| 唐海县| 左权县| 顺昌县| 泰州市| 台中市| 平舆县| 通辽市| 洱源县| 苍南县| 镇远县| 花垣县| 特克斯县| 中江县| 涪陵区| 莆田市| 郯城县| 柳林县| 油尖旺区| 茂名市|