嵌入文件上的 404 響應是什麼樣的
假設圖片嵌入在網頁中,但該圖片不在伺服器上,未找到,並且伺服器以 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),否則它的大小應該非常小。
也許,正如您所說,如果您託管客戶網站,則網站圖示可能是此建議的例外,因為它要求每個頁面(如果未找到並記憶體),但對於您擁有和管理的網站,我不會擔心這個由於給出的原因。