
根据我的理解,DNS 用于将域名解析为 IP 地址。我使用的是 Ubuntu。我按照以下步骤操作。它nslookup facebook.com
给了我网站的 IP。我使用防火墙阻止了 DNS。我在浏览器中输入了 IP。它应该加载了 Facebook 网站,但没有。如果我解除对 DNS 的阻止,则上述方法将获取该网站。为什么会发生这种情况 - 我的意思是,当我有网站的 IP 时为什么需要 DNS?
答案1
当您通过 HTTP 访问网站时,不会使用域名只是DNS 的请求;它也通过 HTTP 本身发送(作为Host:
标头)。这样,同一台服务器可以在同一个 IP 地址上托管许多网站(有时一个或两个,有时同时托管数百个网站),这称为虚拟主机。
通过 HTTPS 连接,相同的名称也会通过 TLS 发送(作为服务器名称指示扩展),因此当在同一 IP 地址上托管许多站点时,服务器可以选择对哪个站点使用哪个证书。
但是如果您尝试访问https://<ip-address>/
,浏览器无法发送任何内容,因此服务器也不知道您想要哪个站点。
(我很确定这个问题已经被回答过很多次了,但我在网站上找不到好的帖子)