理解ASP.NET與客戶端緩存之HTTP協議
2007/1/26 8:11:29
前言

  這個系列的文章要討論的是如何通過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 - 不允許轉換存儲系統。

返回列表
返回首頁 主站蜘蛛池模板: 久久99精品国产麻豆婷婷| 人人妻人人澡人人爽人人精品浪潮| 51影院成人影院| 欧美精品v国产精品v| 又黄又爽视频好爽视频| 一级性生活视频| 欧美巨大另类极品videosbest| 免费一看一级毛片全播放| 色吊丝永久在线观看最新免费| 在线a毛片免费视频观看| 上课公然调教h| 日本中文字幕电影| 久草香蕉视频在线观看| 欧美国产日韩a在线观看| 亚洲精品无码av中文字幕电影网站| 精品国产91久久久久久久a| 国产丰满麻豆vⅰde0sex| 黄视频免费下载| 天天澡天天摸天天爽免费| 五月天在线婷婷| 精品无码人妻一区二区三区品| 国产伦精品一区二区三区四区| 国产男女爽爽爽爽爽免费视频| 国产精品国产免费无码专区不卡| 中文字幕永久视频| 日韩不卡在线播放| 亚洲av永久无码精品三区在线4| 欧美日韩精品一区二区三区高清视频 | 日本免费一区二区三区最新| 乳揉みま痴汉电车动漫中文字幕| 欧美变态口味重另类在线视频| 亚洲欧美成人一区二区在线电影 | 欧美色欧美亚洲高清在线视频| 健身私教弄了我好几次啊| 精品人妻中文字幕有码在线| 向日葵app在线观看下载大全视频| 色婷婷久久综合中文网站| 国产亚洲第一页| 2021三级a电影大全| 国模极品一区二区三区| 99热这里只有精品66|