Http協議(7)—Http緩存

一、冗餘的數據傳輸
        有些客戶端訪問服務器頁面時,服務器會多次響應同一個頁面的副本給客戶端,這會產生冗餘數據,故使用緩存就可以保留第一條相應的副本,以後就響應緩存的數據

二、帶寬瓶頸
        在需要下載大型文件時,如果在局域網中放入該文件的一個副本,則可以很快就下載完畢

三、瞬間擁塞
        服務器同一時間處理多次請求,就會出現瞬間擁塞

四、距離延時
        客戶端和服務器存在一定的距離,信號傳輸會出現延時,如果將緩存放在附近的機房裏就可以減少距離延時

五、命中與未命中
        1.再驗證
            a.需要檢測緩存副本是不是原始服務器上最新的緩存數據
            b.緩存對緩存副本進行再驗證時需要向服務器發送一個小的請求,如果內容沒有變化,則服務器會以304作爲響應,緩存依然認爲副本有效,則再次作爲暫時新鮮的提供給客戶端,這被稱作再驗證命中
            c.在GET請求中添加If-Modified-Since首部作爲再驗證的工具
                    i.再驗證命中
                        如果服務器對未被修改,會向客戶端發送一個HTTP304的響應碼
                    ii.再驗證未命中
                        如果服務器對象與緩存的不同,會向客戶端發送一個HTTP 200 ok的響應碼
                    iii.對象被刪除
                        如果服務器對象被刪除,會向客戶端發送一個HTTP404的響應碼,並刪除起緩存副本
        
        2.文檔命中率

        3.字節命中率
            緩存提供的字節在傳輸的所有字節所佔的比例

        4.區分命中話與未命中的情況
            客戶端可通過Age和Date首部來判別

六、緩存的拓撲結構
        
        1.私有緩存
            緩存在個人電腦和磁盤中

        2.公有緩存
            特殊的代理服務器,接收來自多個用戶的訪問
        
        3.代理緩存的層次結構

七、緩存的處理步驟
        
        1.接受
            從網絡中讀取抵達的請求報文
        
        2.解析
            解析報文爲片段

        3.查找
            查看是否有本地副本可用,如果沒有則從服務器上獲取並存入本地副本中

        4.新鮮度檢測
            當超過緩存的新鮮度限值時需要向服務器檢查緩存是否發生變化
    
        5.創建響應
            緩存會用新的首部(Date除外)和已緩存的主題來構建一條響應報文

        6.發送
            緩存將響應發送給客戶端

        7.日誌
            緩存可選的創建一個日誌文件來描述此次事務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章