标题是什么(' HTTP / 1.0 401 Unauthorized')呢?

时间:2015-02-15 17:21:34

标签: php http-headers basic-authentication unauthorized

在Welling和Thomson的书中写下跟随代码

if (($_SERVER['PHP_AUTH_USER'] != 'user') ||
($_SERVER['PHP_AUTH_PW'] != 'pass')) {
// visitor has not yet given details, or their
// name and password combination are not correct
header('WWW-Authenticate: Basic realm="Realm-Name"');
header('HTTP/1.0 401 Unauthorized');
echo "<h1>Go Away!</h1>
<p>You are not authorized to view this resource.</p>";
} else {
// visitor has provided correct details
echo "<h1>Here it is!</h1>
<p>I bet you are glad you can see this secret page.</p>";
}

标题('HTTP / 1.0 401 Unauthorized')有什么作用?我删除了这一行,脚本工作正常。

为什么这段代码没有这条线?

3 个答案:

答案 0 :(得分:1)

HTTP 401标题告诉您的浏览器您无权查看该页面,如果您尝试访问受保护资源但未登录,这将是预期的情况。

注意:在发送类似标题之后,请务必包含die();exit;,因为机器人不必遵守标题说明并且您要终止脚本在看到受保护的内容之前。这尤其适用于重定向。

答案 1 :(得分:0)

该命令发送的HTTP headerHTTP/1.0 401 Unauthorized,告知浏览器需要usernamepassword查看该页面。< / p>

答案 2 :(得分:0)

header("HTTP/1.0 401 Unauthorized");将未经授权的401状态代码发送到服务器,说明您不允许查看该页面。使用dieexit代替echo来阻止执行其他代码。