一台服务器的同一个
IP地址可以承载多个网站。HTTP 请求自带 Host 头,HTTPS 连接通过 SNI 扩展指定域名,服务器据此把请求分给对应网站。共享主机服务商正是靠这个机制,让大量网站共用同一台服务器。
一个 IP 地址对应一台服务器,但这台服务器上可以同时运行多个网站。关键在于请求中带有域名信息:浏览器访问 https://example.com 时,HTTP 请求头里包含一个 Host 字段,写明访问的是哪个域名;HTTPS 握手阶段还有一个 SNI(Server Name Indication)扩展,同样用来指定域名。服务器读取这些信息,把请求路由到对应网站。
这种共享一台服务器、多个网站各自独立的模式叫虚拟主机。第 13 期介绍过"一个 IP 承载多个域名"是虚拟主机的配置,原理就在于此:网站之间共享 IP 和服务器资源,互不干扰。共享主机服务商靠这一机制同时服务大量客户。
HTTPS 场景下,SNI 让同一 IP 上不同域名的证书可以分开配置,每个网站用自己的证书。现代浏览器和服务器都支持 SNI,它的存在是虚拟主机在加密时代仍能工作的前提。