$_SERVER['HTTP_HOST'] によって取得されるホストにはポート番号があり、理論的にはホスト名であり、ポート番号を持つ必要はありません。
$_SERVER['HTTP_HOST'] にはポート番号が含まれません
$_SERVER['SERVER_PORT'] はポート番号です
$_SERVER['HTTP_HOST'] には含まれませんポート番号 ポート番号
$_SERVER['SERVER_PORT'] はポート番号
個人的なテストでは、ポートが 80 でない場合、$_SERVER['HTTP_HOST'] がポート番号を持ちます。
次に、PHP のグローバル変数 $_server について勉強する必要があります。
参考リンク:
php URLの各部(グローバル変数)の取得方法
http://www.jbxue.com/article/6798.html
$_SERVER['HTTP_HOST'] は、外部情報の http Host ヘッダーフィールドのリクエストヘッダー。
Host ヘッダー フィールド
Host ヘッダー フィールドは、要求されたリソースのインターネット ホストとポート番号を指定し、要求された URL の元のサーバーまたはゲートウェイの場所を示す必要があります。 HTTP/1.1 リクエストにはホスト ヘッダー フィールドが含まれている必要があります。そうでない場合、システムは 400 ステータス コードを返します。