【问题标题】:Why send a header with status code?为什么要发送带有状态码的标头?
【发布时间】: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


【解决方案1】:

401 状态码将触发客户端的身份验证弹出窗口。 (此操作还需要 WWW-Authenticate 标头...)

详情例如这里:

http://en.wikipedia.org/wiki/Basic_access_authentication

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 2021-11-04
    • 2015-07-07
    • 2018-10-23
    • 2021-10-20
    • 2019-10-15
    • 2013-01-04
    • 2013-10-21
    • 2022-12-24
    相关资源
    最近更新 更多