HTTP_HOST , SERVER_NAME 区别

Posted jiqing9006

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP_HOST , SERVER_NAME 区别相关的知识,希望对你有一定的参考价值。

当端口是80的时候,他们的内容是一样的。
但是当端口不是80的时候,就不一样了。

# HTTP_HOST = SERVER_NAME:SERVER_PORT
/**
 * 获取当前的host
 */
public static function getSelfHost() 
    # HTTP_HOST = SERVER_NAME:SERVER_PORT
    $host = 'http://'.$_SERVER['HTTP_HOST'].'/';
    return $host;


/**
 * 获取当前的host
 */
public static function getHttpHost() 
    if ((int)$_SERVER['SERVER_PORT'] === 80) 
        $host = 'http://'.$_SERVER['SERVER_NAME'].'/';
     else 
        $host = 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].'/';
    
    return $host;

上面的代码功能一致 !!!

以上是关于HTTP_HOST , SERVER_NAME 区别的主要内容,如果未能解决你的问题,请参考以下文章

PHP $_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'],我对手册页的理解正确吗?

$_SERVER 中HTTP_HOST 和 SERVER_NAME

ServerVariables["HTTP_HOST"] 和 ServerVariables["SERVER_NAME"] 有啥区别?

关于$_SERVER['SERVER_NAME']和$_SERVER['HTTP_HOST']的区别

Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法

php 获取域名