EdgeCache
細節
- 啟用 Edge Cache 並執行時,App Engine 會傳送一個
age
標頭,其值是自快取響應以來的時間(以秒為單位)。例如,如果到目前為止響應已快取兩分鐘,則響應將包含age: 120
的標頭。如果沒有傳送age
標頭,這是一個好的跡象,表明你還沒有使用 Edge Cache。此外,當響應不包含age
標頭時,表示請求錯過了邊緣快取。 - Edge Cache 在本地開發環境中不起作用。
- 不同地區有不同的快取。世界各地都有單獨的快取。例如,來自歐洲的請求可能會遇到快取,而來自澳大利亞的請求可能不會達到 Edge Cache。
- 即使在同一地區,也有多個快取。例如,來自同一客戶端的兩個連續請求可以接收具有針對
age
報頭的不同值的響應。 - 在達到最大年齡之前,Google 會從 Edge Cache 中刪除內容。如果資源的請求時間超過 5 分鐘,則尤其如此。
- Google 會自動傳送
Vary
標頭,其值為Accept-Encoding
,並帶有一些響應。請參閱此文件 。 - 如果你還有
Set-Cookie
標頭,App Engine 將不允許你將Cache-Control
標頭設定為 public。如果有Set-Cookie
標頭,App Engine 甚至會將Cache-Control
標頭的值從public
更改為private
。看到這裡 。
EdgeCache 的工作原理
EdgeCache 是一個反向代理快取,可以儲存特定時間段的資料,只要快取仍然有效,只要看到相同的請求就會快速返回。
以下是來自 App Engine 團隊的視訊中有關 EdgeCache 如何工作的圖表:
Google Front End
資料中心位於世界各地,可以儲存快取資料,以便在需要時快速返回,而無需執行任何 App Engine 程式碼(在“App Engine 前端”上執行)。
有關反向代理的更多資訊,請參閱此 StackOverflow 答案 。
現在的情況
不幸的是,目前關於 GAE 的 EdgeCache 的知識狀況非常糟糕。關於這個祕密功能的文件範圍可以在 2011 年的論壇帖子 (現在閱讀!)和 11:11 到 11:35 之間的 24 秒內在 Google 的視訊中找到 。
更多資源
以下是我們發現的與 App Engine 的 EdgeCache 功能相關的更多資源的列表:
- App Engine 架構和服務視訊
- 來自 Brandon Wirtz 的精彩論壇帖子
- Google App Engine 第 2258 期 (自 2009 年開始)
- StackOverflow 問題: 關於 Google App Engine 的快取代理的詳細資訊?
- App Engine 快取上的一個詞
- 配置 EdgeCache