幫忙看了一個蠻奇葩的瀏覽器問題,症狀為 IE 連 A 網站有問題,其他網站則完全正常,改用 Chrome/Edge 看 A 網站也正常。初步檢測蒐集線索如下:

  • IE 連上 A 網站,部分圖檔變叉燒包,網頁卡住。看其他所有網站都正常,改用 Chrome/Edge 連 A 網站也沒任何問題
  • 用 F12 偵錯,重新整理時未看到應有的 HTTP 傳輸
  • 問題網頁多重新整理幾次,有時 IE 頁籤會崩潰重啟
  • 改用 InPrivate (無痕)瀏覽則正常

由以上跡象,懷疑是 Cache 導致問題,但初步試過清除 Cache 無效 (這裡有個伏筆,稍後說明)。

特別把叉燒包圖檔拉到頁籤獨立顯示,然後在 URL 隨意加上 ?x=123,觀察到一個關鍵差異,未加參數時圖檔無法顯示,加上後顯示正常。(情境模擬以下圖)

觀察 F12 網路傳輸,叉燒包時為 HTTP 304 使用 Cache、?x=123 則為 HTTP 200 從網站下載。至此,幾乎可百分之百斷定是 Cache 檔案毁損,這也能解釋為什麼使用 InPrivate 無痕瀏覽時正常。

至於為什麼之前刪過 Cache 無效是因為 A 網站被列入我的最愛書籤,刪除檔案時「保留我的最愛網站資料」選項預設勾選不會被清除(延伸閱讀:冷知識 - IE Temporary Internet Files 目錄),當時我並不知道這些,是靠「結束時刪除瀏覽歷程記錄」大絕清光所有暫存檔。

在清除 Cache 前,我從檔案總管看到兩個圖檔,叉燒包版本與 ?x=123 參數快取檔為兩個項目,刪檔前我特地備份叉燒包版存查。

一如預期,將快取暫存檔全部清除後,IE 瀏覽 A 檔案就正常了,而回頭檢查剛才備份的圖檔發現驚人事實 - 問題檔案大小相同,但其二進位內容全是 0x00,我推測當時 A 網站的 html、css、js 快取檔也可能都有類似毁損,瀏覽 A 網站出現凍結當掉等現象也算有了合理解釋。

檔案大小相同但內容全變 0x00 並不尋常,我優先懷疑與硬碟損壞有關,但使用 wmic diskdrive get status 檢查並未發現錯誤,但苦主提到最近電腦的確有異樣,不時出問題需要重開,推測作業系統或硬體已有異常,但後續就留待其他專家處理了。

奇特的案例,長了見識。

A strage case caused by currupted cache file in IE.


Comments

Be the first to post a comment

Post a comment