2012-10-05 21 views
1

我分析我的頁面與谷歌的PageSpeed,但很驚訝地發現,這是谷歌本身帶來的錯誤:一些谷歌CDN資源具有較短的到期日期

建議此頁

以下可緩存資源的有一個短暫的新鮮生命。至少指定一個星期在未來到期以下資源:

看來谷歌的CDN文件+1和分析具有超短的到期時間,擊敗了CDN的目的。

爲什麼會出現這種情況?

+2

CDN的目的不是很長的到期時間......! – deceze

+0

@deceze嗯,CDN的目的是更快地加載內容,並且30分鐘的截止日期似乎無法達到這個目的 – stackunderflow

+1

我的猜測是,他們希望能夠立即更新這些文件,特別是對於相對而言新的G +服務。由於谷歌的服務器字面上遍佈全球,各種各樣的分佈式DNS技巧使它們更快,文件非常小,我認爲它對於他們來說足夠快。 – deceze

回答

2

一個CDN的目的是分發內容,從而把它更貼近用戶和減少的往返時間(RTT)的距離因素,並且不產生影響每說上RTT的其他兩個因素,即光速和服務器響應請求所花費的時間。

在一般情況下,它通常是靜態內容,它可以很容易地從受益於簡單的緩存規則,因爲大多數CDN沒有動態內容生成功能,所以放在CDN上,但沒有什麼說你不能在CDN上放置動態內容(即不容易緩存)的內容。

至於谷歌爲什麼選擇有相對較短的緩存到期時間窗,總是有一個權衡,當涉及到的任何性能改進,特別是與緩存。緩存的最大折衷是在最新內容的可能性和生成最新內容所需的資源之間取得平衡。

這種平衡受到其影響的用戶規模以及您可用於生成內容的資源的巨大影響。在Google的情況下,我猜想他們已經決定30分鐘的時間足夠長,以至於看到大規模的資源收益,但仍然足夠短,以至於他們很樂意將自己限制爲部署30分鐘的最短響應時間新代碼。

Here有趣的是,爲什麼緩存5秒鐘的東西可能是一個有價值的命題,儘管你必須在更新窗口和前面提到的之間取得平衡。

+0

+1感謝您的詳細解答。我猜想快速部署新代碼對安全修復等很重要。 – stackunderflow