laravel如何知道request()->getHttpHost()的值

How does laravel know the value of request()->getHttpHost()

如果我通过 SSH 连接到服务器 运行 在 tinker 命令行中使用 laravel 应用程序和 运行:

print_r(request()->getHttpHost());

这告诉我服务器的域名。但它怎么知道?这些信息存储在哪里。它查询什么来获取此信息。为什么不 return "localhost" 或类似的东西。

Laravel 会先看X_FORWARDED_HOST HTTP header。如果此 header 不可用,它将查看 HOST HTTP header.

如果这些 header 都不可用(即使用 command-line 时),它将查看 SERVER_NAME 配置变量。最后,如果服务器名称也不可用,它将 return SERVER_ADDR 配置变量的值。

您可以阅读 Request::getHttpHost here 的来源。