久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

瀏覽器緩存 - Rambing - JavaEye技術(shù)網(wǎng)站

 閃寧斯達(dá) 2010-08-26
2010-07-20

瀏覽器緩存

文章分類:Web前端
1.1 瀏覽器的緩存應(yīng)用
1.1.1 概述
   游覽器緩存可以有效的解決同一客戶端用戶的多次訪問(wèn)的快速響應(yīng)問(wèn)題。一個(gè)客戶可能多次訪問(wèn)同一個(gè)頁(yè)面,,使用了瀏覽器緩存,,直接可以從客戶的本地獲取緩存的數(shù)據(jù),從而可以有效減少用戶的訪問(wèn)次數(shù),,從而減輕服務(wù)器的負(fù)擔(dān),。最常用的是對(duì)于圖片,JS,,CSS, HTML等靜態(tài)資源實(shí)現(xiàn)瀏覽器級(jí)別的緩存,。

1.1.2 瀏覽器緩存的結(jié)構(gòu)
  瀏覽器的緩存是基于HTTP請(qǐng)求包。一個(gè)HTTP的響應(yīng)包中包含如下的頭信息,。該響應(yīng)頭中列出了緩存相關(guān)的幾個(gè)重要的幾個(gè)字段,。

HTTP/1.x 200 OK
Server: Microsoft-IIS/7.5
Last-Modified: Thu, 31 Dec 2009 09:29:09 GMT
Etag: "e46de5b4fb89ca1:0"
Expires: Thu, 07 Jan 2010 00:00:00 GMT
Cache-Control: max-age=10

其中Last-Modified, Etag和Expires,,Cache-Control是和瀏覽器的緩存和緩存處理密切相關(guān)的四個(gè)字段。前兩個(gè)字段是條件緩存控制參數(shù),,瀏覽器會(huì)根據(jù)這兩個(gè)字段的值向服務(wù)器發(fā)送一個(gè)請(qǐng)求,,詢問(wèn)所需的資源是否已經(jīng)更改,如果沒(méi)有更改直接使用本地文件,,否則重新從服務(wù)器下載,。主要可以減少服務(wù)器的流量,但是不會(huì)減少請(qǐng)求數(shù),。后兩個(gè)這是緩存時(shí)間設(shè)定參數(shù),,只有設(shè)定了過(guò)期參數(shù)的頁(yè)面,瀏覽器會(huì)先查看是否過(guò)期,,如果沒(méi)有過(guò)期直接使用本地緩存,,不再向服務(wù)器請(qǐng)求。如果已經(jīng)過(guò)期才向服務(wù)器發(fā)送請(qǐng)求,。
Last-Modified:指定被請(qǐng)求資源上次被修改的日期和時(shí)間,。例如:Last-Modified: Mon,10PR 18:42:51 GMT
Etag:一種實(shí)體頭標(biāo),它向被發(fā)送的資源分派一個(gè)唯一的標(biāo)識(shí)符,。
Expires:指定實(shí)體的有效期,。例如:Expires: Mon,05 Dec 2008 12:00:00 GMT
Cache-Control:一個(gè)用于定義緩存指令的通用頭標(biāo)。例如:Cache-Control: max-age=30,。

1.1.3 瀏覽器的緩存請(qǐng)求過(guò)程
當(dāng)瀏覽器第一次請(qǐng)求某個(gè)URL時(shí),,順利訪問(wèn)的話,服務(wù)器返回狀態(tài)200的狀態(tài),  同時(shí)會(huì)返回給瀏覽器一些Headers集合,,如果設(shè)定只是設(shè)定了Last-Modified和Etag頭信息,那么瀏覽器接收到服務(wù)器這些信息后,,就會(huì)將資源緩存在本地目錄中,同時(shí)保存文件的上述信息.  第二次請(qǐng)求時(shí),,根據(jù) HTTP 協(xié)議的規(guī)定,瀏覽器會(huì)向服務(wù)器傳送 If-Modified-Since 與 If-None-Match 報(bào)頭這兩個(gè)報(bào)頭實(shí)際上是第一次請(qǐng)求時(shí)服務(wù)器返回的Last-Modified,Etag.發(fā)送這兩個(gè)報(bào)頭目地是詢問(wèn)服務(wù)器,,該資源在時(shí)間內(nèi)有沒(méi)有被修改過(guò),。如 果該資源未被修改,則服務(wù)器會(huì)直接返回HTTP 304 (Not Changed.)狀態(tài)碼,內(nèi)容為空,此時(shí)不會(huì)下載資源,,瀏覽器則自動(dòng)從緩存目錄中讀取資源,。使用Last-Modified和Etag 可以減少傳輸成本,但不會(huì)減少http請(qǐng)求數(shù)量,。如果給文件加上關(guān)于過(guò)期時(shí)間(Expires)的header報(bào)文,這樣瀏覽器就會(huì)先檢查緩存中的文件,,如果沒(méi)有過(guò)期,就直接使用緩存中的文件,從而不會(huì) 發(fā)送http請(qǐng)求,。

1.1.4 瀏覽器的不同請(qǐng)求方式
      瀏覽器請(qǐng)求包括普通頁(yè)面請(qǐng)求(鏈接點(diǎn)擊跳轉(zhuǎn),,用JS腳本打開(kāi)新頁(yè)面,,使用IFRAME時(shí))。F5刷新時(shí)和Ctrl+F5三種方式,。在1.1.3中描述的是對(duì)于普通頁(yè)面請(qǐng)求的情況,。F5刷新忽略緩存的過(guò)期設(shè)定,每次發(fā)送請(qǐng)求到服務(wù)器端,。而CTRL + F5則是與無(wú)緩存時(shí)效果一樣處理,,強(qiáng)制重新下載。

1.1.5 設(shè)定瀏覽器緩存
      當(dāng)前常用的應(yīng)用服務(wù)器,,都可以對(duì)于一般的純靜態(tài)頁(yè)面,,如HTML、GIF,、JPG,、CSS、JS等頁(yè)面進(jìn)行緩存頭信息的設(shè)定,。例如Apache服務(wù)器會(huì)對(duì)自動(dòng)讀取靜態(tài)文件中的Last-Modified字段添加到HEADER中,,并且會(huì)對(duì)所有的頁(yè)面(包括動(dòng)態(tài)頁(yè)面)加上ETag信息到HEADER。也可以使用FILTER動(dòng)態(tài)的對(duì)于需要的頁(yè)面加入這些緩存HEADER的添加,,增加瀏覽器的緩存的使用,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多