2012-12-19 33 views
2

我在我的网站上有受限制的页面,例如URL为http://example.com/some-private-article.html,它显示一个登录页面,您必须输入凭据才能看到该页面。自定义登录页面的正确http状态码是什么?

信息没有消失,它在那里,但它的访问被拒绝。

我想给一个401响应,但没有HTTP认证/消化而规范说,这是必需的,在登录过程的处理服务器端用PHP。

什么是这种页面的正确HTTP状态码?

回答

-1

你一定要看看这个http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html它定义每个响应代码及其含义。

为了您的目的,虽然我可能会建议401 - 未经授权。


编辑:对,如果你正在做的表格形式的验证,然后第二个想法无论是302 - 发现或307 - 临时重定向到登录页面可能会是一个合理的反应,你正在做自己的身份验证。

+0

402意味着“需要付款”而不是“未经授权”。 “未经授权”是401,并且说“响应必须包含一个WWW-Authenticate标头”,这是对此的错误认证类型,并已被问题明确排除。 – Quentin

+0

D'oh,意思是401,错字......编辑答案,然后再读一点问题。 – phuzi

1

我会做这种方式:

  1. 重定向未授权的用户在登录页面(其中有不同 URL)。
  2. 对于有权访问的授权用户,您的私人文章URL 200确定。
  3. 而403代表无权访问的授权用户。
0

按照HTTP status code spec我应该使用403或404自定义登录页面,如果用户没有访问已经(在没有登录或没有所要求的权限),并具有登录到网页通过表单,外部客户端必须通过发送POST请求(通过HTTPS连接)与凭据来登录,然后使用会话密钥存储cookie,以便在重新加载页面后查看受限制的内容。另一方面,如果我想通过GET类型请求为脚本提供登录页面,或者为不需要Cookie的客户端提供登录页面,或者可以通过类似https://username:[email protected]/some-private-article.html这样的URL登录,那么我必须使用HTTP认证,并且没有关于浏览器中登录弹出窗口的选择,在这种情况下,适用于使用401 HTTP状态代码。

我希望我有这个权利,如果不是,那么请纠正我。