HTTP_HOST和SERVER_NAME的区别

网上查询一些文章说HTTP_HOST和SERVER_NAME的区别是HTTP_HOST = SERVER_NAME : SERVER_PORT,完全不是这回事,这只是表象

 

HTTP_HOST实际上是你请浏览器地址栏里面的url里面的主机名那部分,SERVER_NAME是后端web service配置的server_name

比如说当你在nginx里面配置server_name www.demo.com; 如果正好这个站点时唯一的站点,你可以通过IP访问,结果就是:

HTTP_HOST:是IP地址

SERVER_NAME:www.demo.com

 

如果你SERVER_NAME配置的是泛域名,比如说*.demo.com,访问地址是http://www.demo.com/,那么结果就是:

HTTP_HOST:www.demo.com

SERVER_NAME:*.demo.com