網頁快取和條件 GET 語句
什麼是網頁快取?
儲存資料以供重用(例如,Web 伺服器提供的網頁副本)的活動稱為網頁快取。
當用戶第一次訪問頁面時,它會被快取或儲存,並且當用戶下次請求同一頁面時,快取會提供副本,從而防止源伺服器不堪重負。
網頁快取技術極大地提高了頁面交付速度,並減少了後端伺服器所需的工作量。
可以將快取伺服器配置為以預定的間隔或響應指定的事件進行重新整理,以確保僅快取最新內容。(對於新聞等快速變化的資訊有效)。
快取可以幫助防止完全中斷,方法是在伺服器不可用時交付已快取的內容。
Varnish 是一款基於訂閱和基於服務的解決方案套件,其中包括強大的 Web 快取。
代理伺服器
代理伺服器(源伺服器和客戶端之間的中間體)執行 Web 快取。當客戶端請求資訊(透過 HTTP 訊息)時,請求會透過代理伺服器路由,代理伺服器執行以下操作:
它首先檢視本地是否儲存了副本。
如果已儲存,則直接將結果傳送給客戶端。
否則,它代表終端主機執行查詢,在本地儲存響應的副本,並將其傳送回終端主機。
ISP(網際網路服務提供商)、大學甚至公司辦公室通常會部署 Web 快取(或代理伺服器),其中許多終端主機連線到代理伺服器。
使用代理伺服器的優勢
它減少了響應重複請求所需的時間。(尤其是在原始伺服器和接收者之間存在比代理伺服器和接收者之間更小的瓶頸時。)
它透過減少訪問鏈路頻寬(在機構或辦公室)來降低成本。
它減少了網際網路流量的總量。
網頁快取和條件 GET 語句
如果源伺服器上的內容已更改,導致代理伺服器的副本過時怎麼辦?這裡就需要用到條件 GET 語句。
當代理伺服器收到 HTTP 請求並在本地儲存響應時,它仍然會請求源伺服器檢視自上次請求以來相關專案是否已更新。“條件 GET”語句中的“If-modified-since”欄位不同於“Get”語句,因為它描述了上次發出相同請求的時間。
HTTP 304 狀態程式碼通知代理伺服器內容未更新。它傳送修改後的內容(如果有任何更改)——HTTP 200 響應訊息程式碼。
如果代理伺服器收到 304 –“未修改”回覆,則它會向客戶端傳送其本地副本。如果專案已修改,則快取會轉發它,同時也在本地儲存它,以及它接收它的日期和時間(以便以後可以向原始伺服器詢問修改)。
出於顯而易見的原因,HTTP 304 訊息沒有訊息正文。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP