我有一個服務器的請求,如下所示:Firefox和IE:從緩存中檢索時損壞的數據
http://localhost/Combine.aspx/flag/file1.js,file2.js,file3.js
我也試過這個:
http://localhost/Combine.aspx/flag/value/file1.js/file2.js/file3.js
它簡單地組合了它給出的三個文件:這個工作正常。
根據Firefox的第一次請求,頁面顯示正確。當頁面再次刷新時,內容如下所示:
��������`I�%&/m�{J�J��t��`$�����iG#)�*��eVe][email protected]�흼��{���{��;�N'
在這種情況下,沒有請求到服務器,文件只從firefox緩存中檢索,據我所知。
如果我使用Control-F5強制刷新頁面,頁面再次顯示正常。
這裏是控制-F5(作品)的請求和響應(在螢火蟲):
響應
Cache-Control public
Content-Type application/javascript; charset=utf-8
Content-Encoding gzip
Expires Sun, 26 Feb 2012 02:57:26 GMT
Last-Modified Fri, 07 Jan 2011 21:08:54 GMT
Etag CLYvZwbFmainWEMi8h-6x-zNEIQ1
Vary Accept-Encoding
Server Microsoft-IIS/7.5
Set-Cookie auth=longstring; path=/
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET
Date Thu, 03 Mar 2011 02:57:26 GMT
Content-Length 918
請求
Host localhost
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie auth=longstring
Pragma no-cache
Cache-Control no-cache
這裏是與相同只是F5(不起作用):
響應:
Cache-Control public
Content-Type application/javascript; charset=utf-8
Content-Encoding gzip
Expires Sun, 26 Feb 2012 02:57:26 GMT
Last-Modified Fri, 07 Jan 2011 21:08:54 GMT
Etag CLYvZwbFmainWEMi8h-6x-zNEIQ1
Vary Accept-Encoding
Server Microsoft-IIS/7.5
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET
Date Thu, 03 Mar 2011 03:01:31 GMT
Content-Length 1533
請求:
Host localhost
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie auth=longstring
我能說的唯一不同的是Content-Length(可能導致損壞),但由於它從未到達服務器,我無法控制它。
這可能導致什麼?
編輯:
這也發生在IE8上,但它不是查看損壞的文件,而是下載損壞的文件。沒有請求服務器(在visual studio中設置斷點)。
對於chrome,當直接查看URL時,每次都會向服務器發出請求,並且每次都有效。但我相信,如果它包含在標籤中,它的行爲與Firefox類似。
哦,還有:
如果我關閉Expires標頭(這是URL中的標誌之一),一切正常。
編輯2:
我能夠通過不發送一個Expires和ETag標頭,只有一個或另一個來解決這個問題。我不知道爲什麼ETag標頭會導致這種損壞。
這很奇怪。您是否已經嘗試從Firefox的設置中清除緩存?你有沒有在其他瀏覽器上試過這個,看看你是否得到相同的錯誤? – Aaron 2011-03-03 03:20:54
請參閱編輯,它發生在IE8中,但不是Chrome(直接查看url時)。 – Snea 2011-03-03 05:57:35
我有完全相同的問題。我看了看,但我找不到爲什麼發生這種情況的原因。 – SharpBarb 2012-01-08 02:45:36