【发布时间】:2010-07-02 13:27:08
【问题描述】:
我正在写一个小网站。有基于 PHP 会话的授权。如果用户无权访问某个页面,我应该发送什么 HTTP 响应代码?
412 Precondition Failed 是个好主意吗?我认为401 Unauthorized 仅适用于 http 授权。 400 Bad Request 和 403 Forbidden 看起来太笼统了。
【问题讨论】:
标签: php http authorization
我正在写一个小网站。有基于 PHP 会话的授权。如果用户无权访问某个页面,我应该发送什么 HTTP 响应代码?
412 Precondition Failed 是个好主意吗?我认为401 Unauthorized 仅适用于 http 授权。 400 Bad Request 和 403 Forbidden 看起来太笼统了。
【问题讨论】:
标签: php http authorization
403 Forbidden 的意思是“您提供的名称/密码对于此 URL 无效” - 这就是您想要的。
401 Unauthorized 的意思是“给我名字和密码”。
412 Precondition Failed 是完全不同的东西(与条件请求有关;see the RFC)
而400 Bad Request 的意思是“哈?你在说什么?” (请求格式错误,服务器不知道如何处理)
注意:如果你想显示你自己的“你不允许这样做”页面,请确保它超过 512 字节,否则 IE 会显示它自己的,所谓的友好错误改为消息(参见例如 this 和 this)。
【讨论】:
我会使用 403。它的意思是:用户被禁止查看该页面。
【讨论】: