【WEB HTTP】缓存
生活随笔
收集整理的這篇文章主要介紹了
【WEB HTTP】缓存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. HTTP并不支持兄弟緩存,所以人們通過一些協議對HTTP進行了擴展,比如因特網緩存協議(Internet Cache Protocol, ICP)和超文本緩存協議(HyperText Caching Protocol, HTCP)。
2. ?緩存的處理步驟
- 接收;
- 解析;
- 查找,專業級的緩存會使用快速算法來確定本地緩存中是否有某個對象。
- 新鮮度檢測,http有一組非常復雜的新鮮度檢測規則,緩存產品支持的大量配置選項。Http有一些簡單的機制可以在不要求服務器記住有哪些緩存擁有其文檔副本的情況下,保持已緩存數據與服務器數據之間充分一直。HTTP將這些簡單的機制稱為文檔過期(document expiration)和服務器再驗證(server revalidation)
- If-Modified-Since+date.
- If-None-Match,實體標簽再驗證。有些情況下僅適用最后修改日期進行再驗證是不夠的。HTTP允許用戶對被稱為實體標簽(ETag)的“版本標識符”進行比較。實體標簽是附加在文檔上的任意標簽(引用字符串)。If-None-Match+version information。?
- 強弱驗證器(HTTP/1.1支持弱驗證器)。弱驗證器允許對一些內容做出了修改。但內容的主要含義發生變化時,通常他還是會發生變化。用”W/“來標示弱驗證器。
- 創建響應;
- 發送;
- 日志。
3. 控制緩存的能力
服務器可以通過HTTP定義的幾種方式來指定在文檔過期之前可以將其緩存多長時間。按照優先級遞減的順序,服務器可以首部到響應中去。
- no-Store與no-Cache響應首部(eg. Cache-Control:no-Store; Cache-Control:no-Cache),標示no-Store的響應會禁止響應對緩存進行復制。緩存通常會像緩存代理服務器一樣,向客戶端轉發一條no-store響應,然后刪除對象。標識為no-Cache的響應實際上是可以存儲在本地緩存區中的。只是在與原始服務器進行再驗證之前,緩存不能夠提供給客戶端使用。HTTP/1.1中提供Pragma:no-Cache首部是為了兼容HTTP/1.0+。HTTP/1.1應該用Cache-Control:no-Cache。
- max-age響應首部(Cache-Control:max-age)
- expires響應首部(Cache-Control:Expires),指定的是實際的過期日期。
- must-revalidate
- 試探性過期
轉載于:https://www.cnblogs.com/hongdanning/p/4597555.html
總結
以上是生活随笔為你收集整理的【WEB HTTP】缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 深入浅出 委托与事件
- 下一篇: 2000年华中科技大学计算机研究生机试真