我的网站上有限制页面,例如网址为http://example.com/some-private-article.html,它会显示一个登录页面,您必须输入凭据才能看到该页面。
信息没有消失,它就在那里,但拒绝访问它。
我会给出401响应,但是没有http auth / digest,而规范说它是必需的,登录程序是用php处理服务器端的。
此类网页的正确HTTP状态代码是什么?
答案 0 :(得分:1)
我会这样做:
答案 1 :(得分:0)
根据HTTP status code spec我应该使用403或404作为自定义登录页面,如果用户尚未访问,(未登录或没有所需权限)并且必须登录到通过表单的网页,外部客户端将必须通过发送带有凭据的POST请求(通过HTTPS连接)登录,然后使用会话密钥存储cookie,这将允许他们在重新加载页面后查看受限制的内容。
另一方面,如果我想通过GET类型请求为脚本提供登录页面,或者对于不一定有cookie的客户端,或者可以通过{{3}这样的URL登录然后我必须使用HTTP身份验证,并且无法选择登录弹出窗口在浏览器中的样子,在这种情况下,使用401 HTTP状态代码是合适的。
我希望我能做到这一点,如果没有,那么请纠正我。
答案 2 :(得分:-1)
你一定要查看这个http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,它定义了每个响应代码及其含义。
为了您的目的,我可能会建议401 - 未经授权。
编辑:如果您正在进行表单样式身份验证,那么无论是302-Found还是307-临时重定向到登录页面都可能是一个合理的响应,因为您自己正在进行身份验证。