2016-04-10 72 views

回答

2

從標籤維基保持活動:

在同一個連接用於多個 要求,加快網頁與多個 資源下載HTTP的功能。

我不知道這有緩存行爲的任何關係。我通常會看到關於長輪詢的Keep-Alive頭文件,這在S3上啓用沒有任何意義。

我認爲你錯誤地將keep-alive標題與你的瀏覽器緩存靜態內容的能力聯繫起來。緩存控制標題應該是緩存瀏覽器中靜態內容所需的全部內容。

您是否在驗證來自CloudFront的響應是否包含您在S3對象上設置的緩存控制標頭?更新標頭後,可能需要使CloudFront緩存無效。

+1

保持活動連接是常態 - 它們允許瀏覽器發送下一個請求,而不需要新的TCP連接的開銷。 CloudFront設置一個明確的「Connection:keep-alive」標題; S3根本不添加任何'Connection:'頭文件,這在[HTTP/1.1中被認爲是等同的行爲](http://stackoverflow.com/a/7927599/1695906) - 如果連接中啓用了keep-alive :close'不發送。 OP可能會觀察到S3沒有返回標題並假設它很重要的事實,而事實上並非如此。瀏覽器緩存問題的根本原因將在其他地方。 –

+0

以下是其中一個圖像網址:https://s3-ap-southeast-1.amazonaws.com/mysampletest/ad516503a11cd5ca435acc9bb6523536.png我使用REST客戶端訪問此網址。沒有連接:保持活動標題。但是,這是來自BBC網站的一個URL,也存儲在S3中。 http://ichef.bbci.co.uk/bbcle/images/width/live/p0/3h/c2/p03hc212.jpg/624。你可以看到它有Connection:keep-alive頭文件。 – Des

+1

如果url沒有連接:keep-alive頭部,圖像不能被緩存。我正在編寫一個iOS應用程序,它將訪問我的S3存儲桶中的圖像。所有圖像文件都不能被緩存。我花了很多時間來發現問題。最後,我意識到這個問題是關於Connection:keep-alive頭部。我想知道如何配置S3或CloudFront來修復它。謝謝 – Des