在通过 IP 地址和端口号进行虚拟主机时,Web 服务器如何找出 IP 地址和端口号?

在通过 IP 地址和端口号进行虚拟主机时,Web 服务器如何找出 IP 地址和端口号?

虚拟主机通过 IP 地址或虚拟主机通过端口号,Web 服务器根据请求发送到的 IP 地址或端口号来决定为哪个网站提供服务。

当 Web 服务器收到 HTTP 请求时,它如何知道该请求发送到的 IP 地址和端口号?

请求中是否包含IP地址和端口号,如果包含,服务器是否从请求中读取IP地址和端口号?

如果没有,那么 Web 服务器是否会调用套接字库中的某些函数来获取 IP 地址和端口号?

谢谢。

答案1

Web 服务器使用操作系统 TCP 堆栈套接字通过 TCP 协议与远程端点通信。

此套接字包含有关端点的信息,包括 IP 地址和远程端点用于连接到套接字的端口。可以使用getsockopt()带有适当参数的函数检索此信息。

因此,答案是 Web 服务器从套接字选项中读取远程 IP 地址。

相关内容