我正在構建一個網絡服務,在這種特殊情況下,用於詢問有關贊助人的信息。什麼Http代碼應該返回「找不到」?
比方說,因爲參數的緣故,查找網絡命中:
GET /patrons/619 HTTP/1.1
如果找到了靠山,我返回碼200:
HTTP/1.1 200 OK
如果省略,或給一個不是數字的帳號,我返回400.例如下面的錯誤請求:
GET /patrons HTTP/1.1
GET /patrons/ HTTP/1.1
GET /patrons/G619 HTTP/1.1
GET /patrons/kirsten%20guyer HTTP/1.1
全部返回錯誤400(無效請求),例如:
HTTP/1.1 400 Invalid patron number
我想有一個狀態代碼靠山沒找到,返回HTTP狀態代碼。例如:
GET /patrons/1322 HTTP/1.1
HTTP/1.1 404 Not Found
我想過使用404(未找到),這是有效響應(所請求的資源是真心的,忠實地,沒找到。)但我怕調試它的人可能會認爲這意味着他們拼寫錯誤了/patrons/
錯誤。
任何人都可以想到我可以使用另一個http狀態碼嗎?
更新:我我目測
204 No Content
The server successfully processed the request, but is not returning any content.
說你什麼?
不要忘了,並非所有的HTTP服務器都提供HTML內容。如果IIS Web服務器請求一個叫做資源:
GET /MyStartPage.html HTTP/1.1
然後HTTP服務器必須決定如何迴應。在大多數網絡服務器上,名爲/MyStartPage.html的資源對應於位於硬盤驅動器上的文件。
鑑於StackOverflow的作用:
GET /posts/1027301 HTTP/1.1
其中,如果資源不存在,網絡服務器應該(正確)返回404
我不認爲200級別的錯誤也是合適的,考慮W3的解釋http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html – defines 2009-06-22 14:02:47