当前位置: 首页 > 面试题库 >

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

蒋高杰
2023-03-14
问题内容

HTTP_HOSTSERVER_NAMEPHP 和有什么不一样?

哪里:

  • HTTP_POST === $_SERVER['HTTP_HOST']
  • SERVER_NAME === $_SERVER['SERVER_NAME']

您何时会考虑使用另一种,为什么呢?


问题答案:

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

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

更新

在首先怀疑PHP并挖掘了有关该主题的一些PHP错误报告之后,我了解到问题的根源在于所使用的Web服务器,HostSERVER_NAME请求时它错误地返回了HTTP标头。因此,我使用有关该主题的各种关键字来研究ApacheHTTPD错误报告,最后找到了一个相关的错误。此行为是从Apache
HTTPD
1.3开始引入的。你需要设置指令,在该进入中(同时检查在底部的警告文件。UseCanonicalName``on``<VirtualHost>``ServerName``httpd.conf

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

这对我有用。

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



 类似资料:
  • 问题内容: 简单的问题: php中的’和’有什么区别?什么时候应该使用两者之一? 问题答案: 基本上,单引号字符串是纯文本,几乎没有特殊情况,而双引号字符串具有变量插值(例如)以及转义序列,例如“ \n”(换行符)。 您可以在PHP的手册中了解有关字符串的更多信息。

  • 问题内容: 从php.net文档中: session_destroy—销毁注册到会话的所有数据 session_unset —释放所有会话变量 我的三部分问题是: 这两个功能看起来非常相似。 两者之间的真正区别是什么? 两者似乎都删除了注册到会话的所有变量。它们中的任何一个是否实际上破坏了会话本身?如果不是,您如何完成此任务(销毁会话本身)。 这两个函数都没有删除客户端的会话cookie是否正确?

  • 问题内容: 我不明白之间的差别和。 因为如果设置了变量,它是否等于不为空? 问题答案: ISSET 检查变量以查看是否已设置。换句话说,它检查变量是否为除NULL以外的任何值或未分配值。返回该变量是否存在并且具有非NULL的值。这意味着设置了分配了“”,0,“ 0”或FALSE的变量,因此它们是for的。 EMPTY 检查变量是否为空。空解释为:“”(一个空字符串),0(整数),0.0(浮点数),

  • 问题内容: 和PHP 和有什么不一样? 问题答案: 是先递增,后递增。 pre-increment:先增加变量,然后取消引用。 后递增:取消引用然后递增 “利用PHP允许您进行后递增($ i )和预递增( $ i)这一事实。只要您未编写类似$ j = $ i ++的内容,其含义是相同的。预增量几乎快了10%,这意味着您应该在有机会时从后增量切换到预增量,特别是在紧密循环中,尤其是如果您对微优化感到

  • 问题内容: 精通PHP但学习Java的人应该知道的PHP与Java之间的主要区别是什么? 编辑: 我的意思是这些语言的语法上的差异,即它们的数据类型,它们如何处理数组和引用变量等等:) 问题答案: 这不是一个详尽的清单,我是PHP开发人员,前一段时间做过Java之旅,所以做了Caveat Emptor。 Java中的每个变量都必须以数据类型开头。这包括基本类型,例如boolean,int,doub

  • 本文向大家介绍PHP中die()和exit()有什么区别?,包括了PHP中die()和exit()有什么区别?的使用技巧和注意事项,需要的朋友参考一下 die和exit之间没有区别,它们是相同的。 退出状态的PHP手册- 模具状态的PHP手册- 但是,差异很小,即解析器返回令牌所花费的时间。