gpt4 book ai didi

php - PHP 如何使用 header() 函数设置 HTTP header ?

转载 作者:可可西里 更新时间:2023-11-01 16:36:50 24 4
gpt4 key购买 nike

我正在学习 HTTP 和网络编程,我惊讶地发现您可以使用 php 设置 HTTP header 。我以为 PHP 用于生成动态 HTML 网页和创建应用程序。 PHP 可以设置由 Web 服务器(例如 Apache)发送的 header ,这对我来说似乎很奇怪。我知道 PHP 解释器读取 PHP 文件并生成通常为 HTML 格式的输出。

这个过程是否适用于管道?在我看来,apache 服务器必须能够从 PHP 解释器接收命令,或者它必须能够自己解释 PHP 函数。我认为它们是独立的过程。

PHP 使用什么机制来设置 Web 服务器应用程序的 header (httpd 或 Apache 或其他)

是否所有网络服务器都支持接收和设置通过 PHP 接收的 header ?

是否可以为所有后端语言设置 HTTP header ?

我在网站上进行了搜索,但没有找到我的问题的答案。

更具体地说,我想知道除了输出的 HTML 文件之外,apache 或其他 Web 服务器可以向 PHP.exe 应用程序或 PHP-CGI.exe 应用程序发送什么命令来接收其他信息。

最佳答案

确实是个有趣的问题。使用命令行工具,我只能访问生成的 HTML 输出。因此 php -r"header('Location: http://someurl.com');" 不会从命令行生成任何内容。

不过,当我查看 IIS(不是 Apache)的设置时,我发现 IIS 正在使用 PHP-CGI.exe 与 PHP 通信。查看 PHP-CGI.exe 的可选参数,我看到 -b 可用于设置 外部 FASTCGI 服务器模式的绑定(bind)路径。我猜想在这种服务器模式下,将有空间将 header 信息与生成的 HTML 分开进行通信。

我不知道更深入的 FASTCGI 协议(protocol)的确切细节。但我想这就是您想知道的。

编辑:

谷歌搜索时,我发现了这个线程: How does PHP interface with Apache?

关于php - PHP 如何使用 header() 函数设置 HTTP header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37074864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com