【发布时间】:2014-02-25 14:18:34
【问题描述】:
我在 php 中有一个页面,除了我的应用程序之外,我不想访问它。 如果没有预定义会话,我发送标头位置。
然后我想用
header("HTTP/1.1 401 Unauthorized");
exit();
一切正常,我可以添加我自己想要的“未经授权的消息”。 但为什么? 我可以很容易地不发送任何标题(默认为 200)仍然使用我的“未经授权的消息”。
如果浏览器不执行任何操作,告诉浏览器状态码有什么意义?
编辑: 我想更好地解释自己。 不管是 404、403 还是 500。浏览器不会自行显示任何消息,如果我不使用退出,它将继续呈现页面的其余部分。那么它如何帮助我发送标头?
【问题讨论】:
-
如果你告诉浏览器状态码,它会做一些事情,它会告诉用户他们对页面的访问是未经授权的:同样,它会告诉其他访问方法(例如 curl)相同的东西....但是您不应该简单地发送 401 响应,还应该包含一个 WWW-Authenticate 标头字段,其中包含适用于所请求资源的挑战
-
吉尔,我相信你的答案在
.htaccess文件中。 -
@MarkBaker 我发送的标题显示了一个白页。如果我不使用 exit() 它将显示页面的其余部分
-
@gil - 如果您发送 401,您还应该发送 WWW-Authenticate 标头字段,也许您应该发送 403,其中应该包含拒绝请求的原因跨度>
-
标头只是要求浏览器重定向的一行数据。页面的其余部分仍将由 PHP 提供,并且客户端可以通过简单地阻止 header 命令执行来查看。
标签: php http web http-status-codes