English 中文(简体)
给用户一个404如果变量的缺失?
原标题:
  • 时间:2009-04-14 14:02:59
  •  标签:

说我需要一个变量;例如“itemid”。如果参数是出于某种原因丢失,我应该给用户一个200错误页面或“404 Not Found”?

我将支持404,但我不确定。

最佳回答

也许你应该给“400错误请求”。

服务器请求不能被理解的由于畸形的语法。客户端不应该重复请求,而不需要修改。

看到< a href = " http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html " rel = " noreferrer " > http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html < / >更多的可能性。

就像克里斯·辛普森说给“404 Not Found”当没有找到项相应的项id。

你也可以检查受欢迎的RESTful api,看别人如何处理这个问题。例如< a href = " http://apiwiki.twitter.com/REST + API文档# HTTPStatusCodes”rel = " noreferrer " > < / > Twitter。

问题回答

好问题。就我个人而言,我将使用一个200,并提供一个用户友好的错误解释问题,但这实际上取决于环境。

你也显示404如果他们提供itemid并不存在,但特别的东西吗?

从可用性的角度来看,我说没有。

你应该显示一个页面告诉用户什么错了,给了他们一个改正的机会。

如果链接是来自另一个站点上的页面(或另一个网站),然后页面告诉他们请求的项目没有发现,并重定向到一个适当的页面,也许一个让他们浏览物品吗?

如果用户输入变量本身,那么我要问为什么?因为URI通常不友好。

You should give a user 200, only when the HTTP Request you got was responded with an appropriate Response, even when it is only a simple HTML that says they are missing a parameter. The 404 code is when the User Agent is requesting a resource that is missing.

Check this list for further info http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

给一个500错误,可能是501年。这将允许一个浏览器或代码通过现有onError机制来处理它,而不是听一些自定义方式。

我看到这个工作,您应该返回一个200,因为它应该是一个有效的资源。

让年代说你的一个网址是< >widgets.com/browse.php?代码itemid = 100 > < /代码,URL显示一个特殊的项目在你的目录。

现在,用户输入<代码>widgets.com/browse.php > < /代码,我们期望的行动是什么?列出所有的物品在你的目录,当然(或至少一个分页的列表)。

重新考虑你的URL结构和目录级别和参数涉及到另一个。





相关问题
热门标签