发送其他内容和404错误有什么问题吗?

时间:2012-02-23 20:27:02

标签: http http-status-code-404 http-status-codes

例如,白天,在某种面向REST的环境中,会有一个请求进入不存在的对象,例如:

GET http://example.com/thing/5

发回404响应的身体是否与另一个页面相同有什么问题吗?例如,响应如下:

404 body: [content from "http://example.com/thing/" which is a list of things]

这样做有意义吗?这会导致某些浏览器出现任何问题吗?这让用户感到困惑吗?或者这样做真的很好吗?

沿着这些相同的路线,我会尽可能地将404响应的内容与请求的接受标头匹配。 (即遵守与用户代理的内容协商)

例如,xml或json请求会得到一些简单错误消息和“看这里类似的东西”的内容,而html请求会得到一个HTML页面,其中也包含错误消息作为列表页面的内容(如上所述)

2 个答案:

答案 0 :(得分:1)

我认为这取决于Restful Web服务的使用方式。如果我以编程方式从其他应用程序中使用Web服务,那么我希望将状态代码放在一起并使用纯文本消息而不是使用HTML标记装饰的消息。我的意思是,例如,如果您的用户使用Curl进行Web服务调用,则返回臃肿的404内容是没有意义的,因为该消息对他们来说是不可读的。

每个宁静的网络服务可能会有不同的“消费”。如果是XML请求,则返回404和纯文本消息。否则,您将返回错误页面内容。

答案 1 :(得分:0)

我认为没有任何问题。在我们的web服务中,我们总是发回一个json错误对象,其中包括堆栈跟踪和有关响应的其他详细信息。即使在常规的Web服务器上,您至少可以获得可以在浏览器中显示的文本,表示您收到了404响应。