一、與快取有關的Header
1、Request
If—Modified—Since: 快取檔案的最後修改時間
If—None—Match: 快取檔案的ETag值
Cache—Control:no—cache 不使用快取
Pragma:no—cache 不使用快取
2、Reaponse
Cache—Control:public 響應被快取,並且各使用者共享
private 私有快取
no—cache 提醒瀏覽器要從伺服器提取文件驗證
no—store 絕對禁止快取(用於機密檔案)
max—age 60s後快取過期(相對時間)
Date:當前Response傳送的時間
Expires:快取過期的時間(絕對時間)
Last—Modified:伺服器端檔案的最後修改時間
ETag:伺服器端檔案的ETag值
3、為何使用ETag
ETag由伺服器端產生,然後傳送給客戶端。主要是為了解決Last—Modified無法解決的問題:
a)某些伺服器不能精確得到檔案的最後修改時間;
b)某些檔案的修改非常頻繁,在秒以下的時間內修改,Last—Modified只能精確到秒;
c)一些檔案的最後修改時間改變了,但是內容並未改變,我們不希望客戶端認為這些檔案修改了;
二、幾種重新整理方式
對一個資源,瀏覽器第一次訪問,獲取資源內容和cache-control: max-age:600,Last_Modify: Wed, 10 Aug 2016 26 GMT,於是瀏覽器把資原始檔放在快取中。
1、輸入瀏覽器url位址列,回車
瀏覽器直接使用本地有效的快取,不傳送任何請求,直接從快取中讀取。(這種情況名為 快取命中)
2、F5
瀏覽器會去Web伺服器驗證快取(傳送一個請求,帶上Last_Modify: Wed, 10 Aug 2016 26 GMT),伺服器若在這個時間後未修改檔案,直接返回304,瀏覽器就會去快取中獲取資源。
3、Ctrl+F5(強制重新整理)
瀏覽器先把快取中的檔案刪除,然後去伺服器端請求完整最新的資源。
三、代理伺服器
1)對客戶端來說,代理伺服器扮演著伺服器的角色,接收Request,返回Response
2)對伺服器來說,代理伺服器扮演著客戶端的角色,傳送Request,返回Request
PS:常用的抓包工具Fiddler、HTTP Watch、Charles(青花瓷)、Wireshark(鯊魚)等都可以看成一個代理伺服器。LR的原理也是代理
四、代理的作用
1)FQ(這一點我就不說明了)
2)匿名訪問[通過刪除報文中的身份特性(客戶端的IP地址、Cookie等),從而對遠端伺服器隱藏原始使用者的IP地址及其他細節]
3)通過代理連線因特網
4)通過代理快取,加快上網速度
5)兒童過濾器(eg:校園網禁止未成年訪問成人網站)
代理認證:當瀏覽器訪問需要認證的代理時,代理伺服器會返回407,告訴瀏覽器輸入使用者名稱密碼。