HTTP响应状态码402和403的区别

10

朋友们和各位用户,

我们有402和403 http响应代码。尽管402保留供将来使用。

这两者之间有何区别(或将会有何区别)?未收到付款应该等同于未经授权,不是吗?

编辑:我想从“为什么我们已经有403还需要402”的角度了解答案。

3个回答

13

HTTP状态码402和403是不同的:

正如RFC 2616所述,状态码402表示:

402 Payment Required

这意味着该请求并非通常被禁止,但需要付费。 显然,某些服务以预期的方式使用它 HTTP状态码列表

我认为目前不需要(或者只是因为没有指定如何使用而未被使用),但标准的作者们考虑到了未来有用的可能性,所以将其放入其中。


第二个链接不正确,应该是http://http402.org,它会重定向到有关海明互联网支付协议的[此GitHub存储库](https://github.com/mleonhard/hipp)。 - edymtt

6

403禁止访问

服务器已经接受了请求,但是拒绝执行它。授权也无济于事,不应该重复请求。如果请求方法不是HEAD,并且服务器希望公开为什么请求没有被执行,它应该在实体中描述拒绝的原因。如果服务器不希望向客户端提供此信息,则可以使用状态码404(未找到)。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

这对您有所帮助吗?


谢谢Shoban,但是我正在从“为什么我们已经有403还需要402”的角度来看这个问题。 - rest_day
3
因为在未来,状态码402表示如果支付问题得到解决,请求可能会被重复发送。请注意,这里的“可能”表示不确定性。 - Tomas

2
请注意,付款失败只是服务器拒绝请求的原因之一。您可能在其他情况下收到“禁止”状态,例如无效凭据、试图访问“私有资源”等。
我相信402存在仅仅是为了更详细地说明拒绝请求的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接