3

根据RFC2616,如果我返回 401 响应对我的(Ruby)服务器的请求,我“必须包含 WWW-Authenticate 标头字段”。这是真的吗?不设置标题似乎没有负面影响。我使用 Merb 作为 Web 框架,它不会强迫我设置标题。

我是否遗漏了什么,或者这是违反规则更受尊重的规则?

Web 框架是否应该强制开发人员在返回 401 时设置标头?

4

2 回答 2

4

问题是您是否希望用户能够从 401 失败导航到成功的身份验证。如果您未能提供 WWW-Authenticate 标头,那么您正在将 401 的含义从“您必须提供凭据”更改为“我们不喜欢您的这种类型”。这对于您的目的来说可能没问题,但是在不提供解决问题的方法的情况下拒绝凭据的概念中固有的不礼貌是“必须”背后的根源。

于 2010-04-07T21:35:04.620 回答
1

如果您希望客户端进行身份验证,则发送 401,在这种情况下,您需要告诉它如何进行身份验证。

那么你希望客户做什么?如果它只是一个“你不能这样做”的消息,请考虑 403。

于 2010-04-08T07:21:30.847 回答