Http-Headers

嵌入文件上的 404 響應是什麼樣的

  • January 17, 2018

假設圖片嵌入在網頁中,但該圖片不在伺服器上,未找到,並且伺服器以 404 錯誤響應對圖片的請求。

圖片不顯示在網頁上,不顯示實際的 HTTP 響應正文。通常會顯示“損壞的圖像”圖示。

我不知道這個問題的答案是否因伺服器類型、作業系統或其他變數而異……

伺服器是否為嵌入文件生成完整的 404 響應?

如果是,瀏覽器會下載整個響應嗎?

引發這個問題的想法是,當我注意到一些大型 CDN 有一個透明的 1x1 ico /favicon.ico,而不是什麼都沒有時。想法是這個64B文件(在一種情況下)比 404 響應更小或需要更少的計算能力……

似乎沒有任何 HTTP 標頭欄位具有指示資源已嵌入的方式,如果它是 404,則不需要正文。

伺服器是否為嵌入文件生成完整的 404 響應?

是的,它確實。正如您所說,伺服器不知道它是嵌入式文件還是獨立請求。

如果是,瀏覽器會下載整個響應嗎?

好吧,它將下載完整的 HTML 404 頁面 - 但它不會下載該 404 頁面上的任何圖像或其他相關資源。如果您打開開發者工具,您將看到完整的 HTML 響應。

引發這個問題的想法是,當我注意到一些大型 CDN 在其 /favicon.ico 所在的位置有一個透明的 1x1 ico 時,而不是什麼都沒有。想法是這個 64B 文件(在一種情況下)比 404 響應更小或需要更少的計算能力……

我真的不明白這一點。好的,我知道一個像素文件將小於 404,但是如果要努力創建一個小的 favicon.ico 文件,那麼為什麼不創建一個真實的文件呢?或者你是說他們創建了預設的 favicon.ico 文件,然後你可以替換它?好吧,我想可能值得這樣做。

似乎沒有任何 HTTP 標頭欄位具有指示資源已嵌入的方式,如果它是 404,則不需要正文。

正確的。HTTP Header 可以指示請求是否來自referer某個頁面,但您不知道是因為它是作為頁面載入的一部分被請求的,還是有人右鍵點擊頁面並要求將圖像作為單獨的請求查看.

一般來說,我會花更多時間修復 404,而不是擔心優化 404 頁面的大小。避免在嵌入式資源上浪費 404 頻寬的最簡單方法是確保您沒有任何 404!

此外,如上所述,僅下載 404 頁面的 HTML,因此除非您的 404 年齡大得離譜,或者不壓縮它(使用 gzip 或 brotli),否則它的大小應該非常小。

也許,正如您所說,如果您託管客戶網站,則網站圖示可能是此建議的例外,因為它要求每個頁面(如果未找到並記憶體),但對於您擁有和管理的網站,我不會擔心這個由於給出的原因。

引用自:https://serverfault.com/questions/892593