什麼是304快取

2021-09-01 11:09:51 字數 971 閱讀 7954

我們知道,對於web頁面中的js和ccs,並不會每次都請求完整的內容,有時候會直接利用本地的快取;而對頁面本身,卻往往會去載入完整內容,對於伺服器來說可能每次也要生成完整的內容,並送到客戶端;同樣的,對於一些http介面,每次呼叫也會去

我們知道,對於web頁面中的js

和ccs

但有這樣一些頁面,雖然是動態的但變動頻率較小,且對於同一使用者重複呼叫可能很多(比如說個人管理後台或者新聞首頁面),我們希望像js或者ccs那樣在客戶端快取起來.並且,在我們希望的時候,可以更新客戶端備份的那個頁面,或者介面資料.是否可以做到呢;

事實上,瀏覽器可以快取js,就一定能快取我們的動態頁面;

先研究下js是如何快取起來的:

用firebug看一下js的載入:

先強刷(ctrl+f5)一下 頁面,**js的載入如圖

狀態為200 , 查一下200的含意 :

請求成功(其後是對get和post請求的應答文件。)

這是對js檔案的完整載入; 再直接f5重新整理下 ,**js的載入如圖 狀態為304,再查一下304的含意: 未按預期修改文件。客戶端有緩衝的文件並發出了乙個條件性的請求(一般是提供if-modified-since

這是對js檔案的完整載入;

再直接f5重新整理下  

,**js的載入如圖

狀態為304,再查一下304的含意:

未按預期修改文件。客戶端有緩衝的文件並發出了乙個條件性的請求(一般是提供if-modified-since頭表示客戶只想比指定日期更新的文件)。伺服器告訴客戶,原來緩衝的文件還可以繼續使用。

此時其實並沒有從服務端載入完整檔案而是去讀的本地快取;

從304的描述來看,我們知道,請求依然發出,並由服務端告知瀏覽器,掉用快取;

我們可以總結出兩點:

1.由於服務端只是返回簡單的頭資訊,並沒有生成完整頁面,所以雖然請求依然發出,對於瀏覽器和伺服器來說都更快更輕鬆了;

2.我們可以控制瀏覽器去更新快取

關於304快取

但有這樣一些頁面,雖然是動態的但變動頻率較小,且對於同一使用者重複呼叫可能很多 比如說個人管理後台或者新聞首頁面 我們希望像js或者ccs那樣在客戶端快取起來.並且,在我們希望的時候,可以更新客戶端備份的那個頁面,或者介面資料.是否可以做到呢 事實上,瀏覽器可以快取js,就一定能快取我們的動態頁面 ...

什麼是快取?

硬體的快取?cpu快取 位於cpu和記憶體之間的臨時儲存器 軟體快取?軟體快取分為 記憶體快取 預先將資料寫到容器 list,map,set 等資料儲存單元中,就是軟體記憶體快取 資料庫快取 網路快取 記憶體快取淘汰機制分為三種 fifo first in,first out 先進先出 優點 是先進...

不走304快取

解決 304狀態碼的方法 出現這種情況我確定是由iis快取引起的iis快取一方面能提高伺服器效能,另一方面卻給 帶來嚴重上的更新問題,那我應該如何手動去清理它呢?接下來教大家乙個手動清理iis快取的方法!首先,看一下 http協議,您會發現從伺服器返回的http頭裡面能定義這樣一條命令 cache ...