2013-01-07 16 views
1

當有人要求像http://www.example.com/page-that-never-existed-nor-will-ever-exist這樣的頁面(「永遠」意味着可預見的將來,但是出於所有意圖和目的:永遠不會)時,我不知道是否有比404更好的選擇。對於已知不存在的資源,最適合的HTTP響應代碼是什麼?

例如,我根據他們在網站或網絡上其他地方遇到的結構,收到一些「聰明」抓取者認爲可能存在的頁面請求。他們不是拼寫錯誤,但請求,我知道無處可導

我不想使用301 Moved Permanently因爲沒有任何移動,並沒有移動到邏輯目的地。 我不想使用410 Gone,因爲它從來沒有擺在首位。

我也想要比404 Not Found更適合的東西,因爲我真的想給消息「不存在」:不只是「未找到,發生了什麼?誰知道?」。我怎麼能告訴一個用戶代理,再次要求它是浪費我們的時間?

基於HTTP 1.1,404 Not Found似乎是最正確的選擇,因爲定義以「或者其他任何響應無法適用」結尾,但我對此並不完全滿意。任何其他想法?

回答

0

你考慮過403禁止嗎?這聽起來像你可能要找的東西,你可以在響應的主體中包含一條消息,告訴客戶端資源永遠不會存在。

服務器理解請求,但拒絕履行它。 授權不起作用,請求不應重複。如果 請求方法不是HEAD,並且服務器希望公開 爲什麼請求沒有被滿足,它應該描述在實體中拒絕的原因 。如果服務器不希望向客戶端提供此信息,則可以使用狀態代碼404(不是 找到)代替。

+0

我理解這個推理,但我不認爲它是合適的,因爲它確實沒有任何阻礙。我只是想表明,要求所述資源浪費時間(雙方),這在UA方面肯定是一個錯誤。 –

相關問題