header() - 发送原始HTTP标头
现在,
当我使用以下代码时:
header('location:form.html');
然后,标头函数立即将浏览器重定向到 form.html 或者只是在执行上一行后立即发送HTTP响应标头。
但是当我使用相同的 header 函数将一些其他头字段添加到响应头时,例如:
header("X-Sample-Test: foo");
header('Content-type: text/plain');
那为什么不立即发送HTTP响应头?
首先,如果我错了,请纠正我,其次请分享有关HTTP标头的更多信息。
答案 0 :(得分:1)
正如评论中提到的,PHP.net documentation表示:
第二个特例是“Location:”标题。它不仅将此标头发送回浏览器,而且还向浏览器返回REDIRECT(302)状态代码,除非已经设置了201或3xx状态代码。 {{3} } 。
因此该标题是特殊情况。
但是当我使用相同的头函数将一些其他头字段添加到响应头
时
header("X-Sample-Test: foo");
header('Content-type: text/plain');
那为什么不立即发送HTTP响应头。
它仍然会发送这些标题(您应该能够在浏览器控制台中看到它们 - 例如在网络标签中)但是浏览器不会将用户发送到不同的URL用于重定向标头。
看一下下面的图片,在我加载带有这些标题的PHP页面后,我在网络选项卡中检查了响应头。我突出显示了那些标题。有关查看标题的详细信息,请参阅1或Google Chrome的
的这些答案。您可能会发现在上阅读一些(正面投票的)用户贡献的笔记很有意思。
1 <子> that documentation page 子>