web快取是指乙個web資源(如html頁面,,js,資料等)存在於web伺服器和客戶端(瀏覽器)之間的副本。
快取會根據進來的請求儲存輸出內容的副本;當下乙個請求來到的時候,如果是相同的url,快取會根據快取機制決定是直接使用副本響應訪問請求,還是向源伺服器再次傳送請求。
減少網路頻寬消耗:無論對於**運營者或者使用者,頻寬都代表著金錢,過多的頻寬消耗,只會便宜了網路運營商。當web快取副本被使用時,只會產生極小的網路流量,可以有效的降低運營成本。
降低伺服器壓力:給網路資源設定有效期之後,使用者可以重複使用本地的快取,減少對源伺服器的請求,間接降低伺服器的壓力。同時,搜尋引擎的爬蟲機械人也能根據過期機制降低爬取的頻率,也能有效降低伺服器的壓力。
減少網路延遲,加快頁面開啟速度:頻寬對於個人**運營者來說是十分重要,而對於大型的網際網路公司來說,可能有時因為錢多而真的不在乎。那web快取還有作用嗎?答案是肯定的,對於終端使用者,快取的使用能夠明顯加快頁面開啟速度,達到更好的體驗。
資料庫資料快取:web應用,特別是sns型別的應用,往往關係比較複雜,資料庫表繁多,如果頻繁進行資料庫查詢,很容易導致資料庫不堪重荷。為了提供查詢的效能,會將查詢後的資料放到記憶體中進行快取,下次查詢時,直接從記憶體快取直接返回,提供響應效率。比如常用的快取方案有memcached等。
【memcached 是乙個高效能的分布式記憶體物件快取系統,用於動態web應用以減輕資料庫負載。它通過在記憶體中快取資料和物件來減少讀取資料庫的次數,從而提高動態、資料庫驅動**的速度。memcached基於乙個儲存鍵/值對的hashmap。其守護程序(daemon )是用c寫的,但是客戶端可以用任何語言來編寫,並通過memcached協議與守護程序通訊。】瀏覽器端快取:瀏覽器快取根據一套與伺服器約定的規則進行工作,在同乙個會話過程中會檢查一次並確定快取的副本足夠新。如果你瀏覽過程中,比如前進或後退,訪問到同乙個,這些可以從瀏覽器快取中調出而即時顯現。
伺服器端快取
**伺服器快取:**伺服器是瀏覽器和源伺服器之間的中間伺服器,瀏覽器先向這個中間伺服器發起web請求,經過處理後(比如許可權驗證,快取匹配等),再將請求**到源伺服器。**伺服器快取的運作原理跟瀏覽器的運作原理差不多,只是規模更大。可以把它理解為乙個共享快取,不只為乙個使用者服務,一般為大量使用者提供服務,因此在減少相應時間和頻寬使用方面很有效,同乙個副本會被重用多次。常見**伺服器快取解決方案有squid等。cdn快取:cdn(content delivery networks)快取,也叫閘道器快取、反向**快取。cdn快取一般是由**管理員自己部署,為了讓他們的**更容易擴充套件並獲得更好的效能。瀏覽器先向cdn閘道器發起web請求,閘道器伺服器後面對應著一台或多台負載均衡源伺服器,會根據它們的負載請求,動態將請求**到合適的源伺服器上。雖然這種架構負載均衡源伺服器之間的快取沒法共享,但卻擁有更好的處擴充套件性。從瀏覽器角度來看,整個cdn就是乙個源伺服器,從這個層面來說,本文討論瀏覽器和伺服器之間的快取機制,在這種架構下同樣適用。
web應用層快取:應用層快取指的是從**層面上,通過**邏輯和快取策略,實現對資料,頁面,等資源的快取,可以根據實際情況選擇將資料存在檔案系統或者記憶體中,減少資料庫查詢或者讀寫瓶頸,提高響應效率。
原文:
web 快取機制 cookie與session
1.cookie cookie技術是客戶端的解決方案,cookie是由伺服器發給客戶端的特殊資訊,而這些資訊以文字檔案的方式存放在客戶端,然後客戶端每次向伺服器傳送請求的時候都會帶上這些特殊的資訊。web應用程式是使用http協議傳輸資料的。http協議是無狀態的協議。一旦資料交換完畢,客戶端與伺服...
Web 快取與 HTTP 狀態碼
瀏覽器快取 瀏覽器可以快取伺服器給它傳輸的資訊,那麼瀏覽器是怎麼判斷需不需要快取的呢?通過什麼來判斷?什麼情況下訪問 伺服器什麼情況下訪問源伺服器?1 http 快取 這裡就涉及了http 快取機制,但 http 快取不僅涉及瀏覽器還應有 快取伺服器,http 快取體系大致可以分為快取儲存策略 快取...
硬碟快取的主要作用
硬碟的快取主要起三種作用 1預讀取 當硬碟受到cpu指令控制開始讀取資料時,硬碟上的控制晶元會控制磁頭把正在讀取的簇的下乙個或者幾個簇中的資料讀到快取中 由於硬碟上資料儲存時是比較連續的,所以讀取命中率較高 當需要讀取下乙個或者幾個簇中的資料的時候,硬碟則不需要再次讀取資料,直接把快取中的資料傳輸到...