我正在构建一个网络服务,在这种特殊情况下,它用于询问有关顾客的信息。
假设,为了争论,查找网络命中是:
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/qwerty HTTP/1.1
GET /patrons/kylie%20guenin 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 (Not Found),这是一个有效的响应(所请求的资源,真的,真的,没有找到。)但我担心调试它的人可能会认为这意味着他们拼写/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 服务器必须决定响应什么。在大多数 Web 服务器上,名为/MyStartPage.html的资源对应于位于硬盘驱动器上的文件。
而 StackOverflow 可以:
GET /posts/1027301 HTTP/1.1
其中,如果该资源不存在,则 Web 服务器应该(正确地)返回 404。