PHP中的HTTP_HOST和SERVER_NAME有什么区别

2019-12-01 08:00:16

多域名指向同一个php服务器,用nginx做代理,获取SERVER_NAME都是第一个域名,这就尴尬了,至今不明白咋回事,最后用HTTP_HOST解决都,这个暂时倒是准确。

HTTP_HOST:从客户端请求获取的HTTP请求标头中获取

例:

1

2

网站: http://www.php.cn

HTTP_HOST: www.php.cn

HTTP_SERVER:根据主机配置从服务器名称获取。

例:

1

2

网站: http://www.php.cn

HTTP_SERVER: Display the server name

HTTP_HOSTSERVER_NAME
它从客户端检索请求标头。它检索服务器配置。
它不可靠,因为它的值可以修改。它更可靠,因为它的价值来自服务器配置。
语法:$ _SERVER ['HTTP_HOST']语法:$ _SERVER ['SERVER_NAME']
它提供了满足请求的主机的域名。它提供主机配置中指定的服务器名称。
示例:localhost:8080示例:www.google.com
它基于客户的要求。它基于Web服务器的配置。
因为它与请求直接相关,所以它在大多数应用程序中使用。它根本不提供有关请求的任何信息。
它取自目标主机。它取自服务器配置。
它是客户控制的价值。它是服务器控制的值
http://www.php.cn
HTTP_HOST:www.php.cn

http://www.php.cn
HTTP_SERVER:php.cn

HTTP_HOST示例:

1

2

3

<?php

 echo $_SERVER['HTTP_HOST']; 

?>

输出:

1

// 它显示主机名

HTTP_SERVER的示例:

1

2

3

<?php

echo $_SERVER['SERVER_NAME'];

?>

输出:

1

//它显示服务器名称

注意:对于localhost,HOST和SERVER名称都相同。


  • 2019-12-30 10:17:21

    router-link传递参数,query

    在vue-router中,有两大对象被挂载到了实例this; $route(只读、具备信息的对象); $router(具备功能的函数) 查询字符串: 去哪里 ? <router-link :to="{name:'detail',query:{id:1}}"> xxx </router-link>

  • 2019-12-30 16:48:41

    vue provide/inject详解和用法

    父子组件交互方式多种,props、vuex、 、 emit、localStorage还有就是这个provide/inject了。它适合层级比较深的组件,比如子,子孙,子孙后代的组件有好几个用到父组件的某个属性,就可以用到这个provide/inject,它可以避免写大量繁琐的传值代码 我这里为什么要使用它? 我一个知识库详情父组件中包含了大量的子组件,每个子组件都需要父组件的知识库ID,这时候我不想写大量props,就用到provide/inject进行传值了

  • 2020-01-03 00:36:00

    break和continue详解for循环

    1. break:直接跳出当前循环体(while、for、do while)或程序块(switch)。其中switch case执行时,一定会先进行匹配,匹配成功返回当前case的值,再根据是否有break,判断是否继续输出,或是跳出判断(可参考switch的介绍)。 2. continue:不再执行循环体中continue语句之后的代码,直接进行下一次循环。