栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP中的HTTP_HOST和SERVER_NAME有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP中的HTTP_HOST和SERVER_NAME有什么区别?

所述

HTTP_HOST
从得到的HTTP请求报头,这就是在客户端实际使用作为请求的“目标主机”。将
SERVER_NAME
在服务器配置定义。使用哪种取决于您的需要。但是,您现在应该意识到,一个是客户机控制的值,因此对于在业务逻辑中使用可能是不可靠的,而另一个是服务器控制的值,该值更可靠。但是,您需要确保所讨论的Web服务器已
SERVER_NAME
正确配置。以Apache
HTTPD为例,以下是其文档摘录:

如果未

ServerName
指定,则服务器尝试通过对IP地址执行反向查找来推断主机名。如果没有在中指定端口
ServerName
,则服务器将使用传入请求中的端口。为了获得最佳的可靠性和可预测性,您应该使用
ServerName
指令指定一个明确的主机名和端口。


更新

在首先怀疑PHP并挖掘了有关该主题的一些PHP错误报告之后,我了解到问题的根源在于所使用的Web服务器,

Host
SERVER_NAME
请求时它错误地返回了HTTP标头。因此,我使用有关该主题的各种关键字来研究ApacheHTTPD错误报告,最后找到了一个相关的错误。此行为是从Apache
HTTPD
1.3开始引入的。你需要设置指令,在该进入中(同时检查在底部的警告文件。
UseCanonicalName``on``<VirtualHost>``ServerName``httpd.conf


<VirtualHost *>    ServerName example.com    UseCanonicalName on</VirtualHost>

这对我有用。

总而言之,

SERVER_NAME
它更可靠,但是您 依赖 于服务器配置!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470797.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号