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

首頁 > 編程 > .NET > 正文

理解掌握ASP.NET與客戶端緩存之HTTP協議

2024-07-10 13:08:33
字體:
來源:轉載
供稿:網友

  前言

  這個系列的文章要討論的是如何通過asp.net服務器端技術來優化客戶端緩存策略,而且讓這種策略變得可配置和可擴展。我們要了解的知識從http協議中相關屬性對客戶端緩存的影響,到asp.net如何控制這些屬性來實現我們的緩存策略。

  http基礎知識

  由于討論涉及到客戶端緩存,所以還是先要簡單介紹一下http協議是如何控制客戶端緩存的,這里涉及到http頭的last-modified、etag等屬性。

  last-modified

  在瀏覽器第一次請求某一個url時,服務器端的返回狀態會是200,內容是你請求的資源,同時有一個last-modified的屬性標記此文件在服務期端最后被修改的時間,格式類似這樣:

last-modified: fri, 12 may 2006 18:53:33 gmt

  客戶端第二次請求此url時,會在頭部加入一個屬性,詢問該時間之后文件是否有被修改過:

if-modified-since: fri, 12 may 2006 18:53:33 gmt

  如果服務器端的文件沒有被修改過,則返回狀態是304,內容為空,這樣就節省了傳輸數據量。如果服務器端的文件被修改過,則返回和第一次請求時類似。

  etag

  和last-modified類似,由于rfc2616(也就是http/1.1)中沒有說明etag該是什么格式的,只要確保用雙引號括起來就行了,所以你可以用文件的hash,甚至是直接用last-modified,以下是服務器端返回的格式:

etag: "50b1c1d4f775c61:df3"

  客戶端的查詢更新格式是這樣的:

if-none-match: w/"50b1c1d4f775c61:df3"

  如果etag沒改變,則返回狀態304然后不返回,這也和last-modified一樣。

expires

  這個屬性就如我們在asp中使用httpresponse.expiresabsolute一樣直接,聲明某某時刻過期之后瀏覽器就應該重新請求該url,使用格式為:

expires: sun, 10 feb 2002 16:00:00 gmt

  注意httpresponse.expiresabsolute在asp.net中是不建議使用的,現在我們應該使用的是httpresponse.cache.setexpires。

  pragma

  通常我們用到的值就是no-cache,這和在cache-control中使用no-cache值是一樣的,cache-control在下面講。pragma的使用格式如下:

  pragma: no-cache

  cache-control

  這是一個集合型屬性,它里面能夠包含很多子屬性,并且允許用戶擴展新的子屬性。常見的子屬性包括:

  max-age - 以秒為單位的超時,覆蓋expires屬性。

  public - 允許保存在共享緩存中。

  private - 只允許保存在私有緩存中。

  no-cache - 不允許緩存。

  no-store - 不允許緩存在持久介質中。

  no-transform - 不允許轉換存儲系統。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙游县| 闽清县| 尉氏县| 洛隆县| 玉林市| 大同县| 康马县| 和顺县| 内乡县| 金昌市| 白玉县| 冀州市| 任丘市| 泸定县| 巴彦县| 鹤壁市| 驻马店市| 黄石市| 泰来县| 屯门区| 望城县| 台南市| 华容县| 青海省| 高淳县| 新建县| 合山市| 揭阳市| 九寨沟县| 襄垣县| 西昌市| 长垣县| 海淀区| 华池县| 酒泉市| 麻栗坡县| 长治县| 正蓝旗| 吴川市| 库尔勒市| 盐城市|