2017-05-31 48 views
0

一個奇怪的網頁橫過我的路。 (作爲一名開發人員,我必須解開這個謎團。)服務器爲網頁返回404,但頁面在瀏覽器中顯示正常 - 爲什麼?

在任何瀏覽器中訪問網頁時,一切似乎都正常。網頁按預期顯示。

但在控制檯看當服務器acually返回404個狀態碼:

enter image description here

那麼,爲什麼瀏覽器呈現頁面?

縱觀車身顯示返回的HTML標籤:

enter image description here

等一下。響應404並一路發送HTML?瀏覽器渲染它?

這是怎麼發生的?這是一些服務器配置錯誤嗎?或者是在我不明白的地方發生了什麼?故意配置服務器的行爲是否有實際的理由?

回答

0

Another answer on Stack Overflow包含一些有趣的信息:spec實際推薦HTTP狀態碼404加HTML響應體。

的4XX類的狀態代碼是用於在其中
客戶端似乎有錯誤的案件。響應一個HEAD
請求時除外,服務器應該包括含有表示的錯誤情況一個
解釋,以及它是否是一個臨時或
永久狀態。這些狀態代碼適用於任何
請求方法。用戶代理應該向用戶顯示任何包含的
表示。

這給我留下了兩種可能的解釋:

說明1:這是一個服務器錯誤。

  • 服務器錯誤返回404個狀態碼
  • 瀏覽器認爲該響應主體包含有關錯誤的詳細信息,並顯示它 - 對於最終用戶,這是實際的頁面

解釋2:它是爲了擊敗爬蟲和頁面觀察者而完成的。

  • 在服務器上的目的,返回404 - 因爲他們把它解釋爲錯誤
  • 瀏覽器不受影響非瀏覽器的用戶代理不會處理結果,最終用戶不只要關心的頁面正在顯示

如果你不希望你的頁面被索引,第二個確實會很聰明。

相關問題