1

附加的是來自同一網站的Google Chrome網絡工具的三個屏幕截圖。Chrome網絡工具中的大小/內容列顯示Amplience CDN的不一致結果

它們進行過濾以顯示從尺寸/內容列中顯示的Amplience CDN

結果的圖像而改變,我試圖理解爲什麼。

每個屏幕截圖都是從返回用戶的角度出發的。因此,圖像應該來自緩存。

屏幕截圖1 - 顯示磁盤大小和傳輸大小之間的巨大差異。 屏幕截圖2 - 顯示其中一個圖像現在不被緩存 屏幕截圖3 - 現在顯示術語(來自緩存)。

我的問題是:

  1. 在截圖1,爲什麼它沒有(從緩存)說什麼?在截圖3中沒有發生的少量傳輸大小中發生了什麼?

  2. 爲什麼一個圖像突然沒有被緩存?

    Screenshot 1 - big difference between Size on Disk and Transfer Size Screenshot 2 - one of the images is now NOT cached Screenshot 3 - the term (from Cache) is now displayed

回答

1

我的迴應:

  1. 在截圖1,爲何不說(從緩存)?在屏幕截圖3中發生的少量Transfer Size中發生了什麼 ?

如果顯示「狀態」,則可能會看到「304未修改」。在這種情況下,使用網絡。一個請求被髮送到服務器,並且響應只包含長度爲257個字節的標頭。

  1. 爲什麼一個圖像突然沒有被緩存?

可能有很多原因,所以很難回答,沒有更多的信息。

  • 這可能是您要求進行「硬刷新」(Ctrl + Shift + R)。
  • 可能是響應包含比「Cache-Control:max-age = xxx」更大的「Age」標頭,或者是過去太遠的「Date」標頭。
  • 我也可以想到瀏覽器發送帶有「If-modified-Since」標頭或「Etag」標頭的請求,並且您的服務器(在您的情況下爲CDN服務器)不會全部響應相同的信息。
  • 瀏覽器有時候會從緩存中刪除東西,通常當他們需要爲其他文件騰出空間時。
+0

我重新運行測試。無法重新制作屏幕截圖2,但我已經複製了屏幕截圖1和3.關於狀態304的建議是正確的。總之,狀態200導致(從緩存),狀態304到少量字節。什麼因素決定是否給出狀態304或200? @Gael Metals – James

+0

@Spencer當服務器知道客戶端在緩存中已經有相同的文件時,會有一個304響應。要發生這種情況,客戶端的請求必須發送一個'ETag'或'Last-Modified'標頭,該標頭以前由服務器提供。因此,當文件處於緩存但max-age已過期(或用戶按下刷新按鈕)時,您會得到一個304,+以前的響應包含其中一個標頭。 –

+0

感謝@gael metais。即使最大年齡沒有過期,我也會得到304s。 – James

相關問題