2013-03-01 77 views
1

在2000年的論文「Rules of Thumb in Data Engineering」他們建議的規則:今天網站緩存仍然相關嗎?

緩存網頁是否有任何機會,他們將是他們一生中 再引用。」

今天仍然適用嗎?帶寬是便宜和快速的,網站往往是動態的,所以有更少的緩存命中(我想是這樣,是嗎?)。緩存網站是否有意義?如果是這樣,什麼數據被緩存?我可以想象圖片或文章,但我的個人推特網站呢?即使對於文章,我也可能會得到一些突發新聞,所以緩存中數據的生命週期應該很低。

這個經驗法則是否仍然相關,它在實踐中如何使用?

+0

這是一個家庭工作問題嗎? (討論) – danodonovan 2013-03-01 20:04:34

+0

嗨,不過,論文在課程的閱讀列表中,我們可能會對此提出質疑。但問題是我自己的。 – Puckl 2013-03-01 20:12:29

回答

1

緩存是相關的如圖像,CSS樣式表,Javascript代碼文件等,因爲它允許靜態數據頁面在重複點擊和子頁面上加載速度更快。同樣也適用於靜態HTML頁面,但正如您所指出的,現在許多頁面都是動態的,並且它們通過HTTP標頭宣佈它們不應該被緩存。

2

緩存今天也非常重要。所以你的網站反應更快,你的服務器可以處理更多的客戶端。

基本上你應該讓客戶緩存一切靜態的東西,如CSS,JS和圖像。如果你需要重新加載一個文件,你可以添加一個新的查詢字符串。

恕我直言,是使用過期日期最大的伎倆。在文件過期之前,客戶端不會請求文件。 etag對於檢測動態內容的變化也非常有幫助。

您還應該記住,移動網絡與DSL和公司非常緩慢的比較。

0

啊這是非常重要的......特別是因爲提供了從網站獲取信息的方式,最近已大不如前

2

由於我們社區的其他成員已經說過緩存是非常重要的工具,當然如果你想減少服務器負載和延遲))我只是想分享一些我必須學習的技術最後2-3周:

第一件事:您可以響應與If-Modified-Since請求工具返回Last-Modified HTTP標頭(以及ETag/If-None-Match,唯一的區別是,Etag的代表一些散列值的Last-Modified時代表日期)。您只需比較If-Modified-SinceLast-Modified日期,並且如果頁面,圖像等已過時您將返回200 OK狀態碼。如果圖像未被修改您只返回304 Not Modified狀態(圖像從您的瀏覽器緩存中提供)。
在這種情況下,您應該在客戶端(瀏覽器)上緩存圖像。

如果您想減少數據庫查詢的數量,您也可以將它們緩存在服務器上。或者你可以使用兩個:ServerAndClient。

第二件事:過去兩週我用這種方法掙扎)
我設置Expires響應頭的永恆(如1年)和客戶端上的緩存圖片。如果圖像已經改變,我建立新的Url(包含散列圖像的最後寫入日期)。

我創建了一個監視圖像文件夾的Windows服務,如果圖像已被更改,它會將最後修改日期寫入數據庫。比我添加這個圖像的最後修改日期到Url。

這種方法的好處是服務器只有在圖像被更改時纔會被命中。

E.g.在第一種描述的方法中,瀏覽器必須向服務器發送請求,以在從其自己的緩存中獲取圖像之前驗證圖像是否新鮮。

三件事:如果緩存沒有在它自己的使用Expires HTTP標頭(沒有實施Last-ModifiedEtag)的原因,例如,在客戶機上的圖像瀏覽器會從它的高速緩存,除非採取這一形象時間到期。所以,如果圖像已被修改,用戶將不會看到它,除非時間到期。

希望我在緩存小經驗將幫助你:)

附:緩存一切可能!

相關問題