指定“主机名”时,还需要指定端口吗?

Tim*_*Tim 4 web-server port hostname virtualhost

https://en.wikipedia.org/wiki/Virtual_hosting

基于名称的虚拟主机对同一个 IP 地址使用多个主机名。

“主机名”是对应一个IP地址还是一对IP地址和一个端口?

指定“主机名”时,还需要指定端口吗?

如果这很重要,请仅在虚拟主机中考虑。

谢谢。

Jen*_*y D 22

主机名不对应于 {ipaddress,port} 元组。主机名只是服务器的名称,应该可以解析为一个或多个 IP 地址。端口与主机名完全无关。

  • @Tim,如果您有更多问题,请随时按“提问”在平台中创建新问题 (3认同)
  • @Tim:解析主机名完全、完全、完全独立于端口号。因此,在解析名称时既不需要也不可能指定端口。(又名“名称查找”)。 (2认同)
  • @MSalters 几乎... [SRV 记录](https://en.wikipedia.org/wiki/SRV_record) 通常指定服务的端口以及 IP。一个记录可以解析为同一 IP 上的多个端口。 (2认同)

IMS*_*SoP 9

“虚拟主机”只是一个软件的一个特性,它利用请求中的额外上下文来采取不同的行动。

需要注意的重要一点是 TCP/IP 本身对主机名一无所知;它们的主要目的是作为一种查找 IP 地址的方法。

经典示例是使用基于名称的虚拟主机的 HTTP 服务器,其工作方式如下:

  • 用户请求一个 URL。在 DNS 中查找域名以查找 IP 地址。
  • TCP 连接被打开到特定的 IP 地址和端口。(对于 HTTP,默认为端口 80;对于 HTTPS,端口 443)。
  • 客户端在该连接上发送一个请求,其中包括正在使用的协议指定的任何信息。
    • 在 HTTP 1.1 中,这包括“主机”标头,这是用户查找 IP 地址的域名。
    • 对于安全连接,TLS 握手可以包括“服务器名称指示”字段,以便在同意证书之前可用。
  • 侦听 IP 地址和端口的服务器软件现在拥有所有三个信息:IP 地址、端口号和主机名;它可以使用这些来确定应用到请求的配置。这个配置就是“虚拟主机”。