如果我输入网站的 IP 而不是字符串形式,我的本地 DNS 服务器是否可以理解这一点并且我是否会绕过 DNS 过程?

如果我输入网站的 IP 而不是字符串形式,我的本地 DNS 服务器是否可以理解这一点并且我是否会绕过 DNS 过程?

这纯粹是出于好奇。但是,如果我输入网站的 IP,请求是否仍会经过正向查找过程?如果不是,在什么时候、通过哪一步才意识到这是 IP 位置,而不是字符串形式的主机名?

另外,这将如何记录在我的主机文件中?如果它经历了整个查找过程,主机文件是否会包含字符串主机名以及 IP 并在本地填充?

答案1

如果您使用 IP 地址,操作系统将立即知道它是一个 IP 地址,并且不会进行正向查找。

当您发出 HTTP 请求时,第一步是获取目标的 IP 地址,以便浏览器可以与服务器通信。对于与服务器的通信,一切都通过 IP 进行,从一个 IP 地址到另一个 IP 地址,因此此通信不需要服务器的名称。但是,Host:如果 Web 服务器托管多个网站,则会将其作为标头传递到 HTTP 标头中,以便让 Web 服务器知道您要访问哪个网站。

如果通过 IP 地址访问,则不会发生这种情况,而是显示默认站点。

您的hosts文件是一个静态文件,它不会因您采取的任何操作而改变,除非您直接编辑它(或有修改它的脚本或应用程序)。

答案2

正如其他人所写,通过使用 IP 地址,您确实跳过了 DNS,从而无需使用主机名即可访问开发站点。

对于开发网站来说,将 IP - 模拟主机名添加到 /etc/hosts 中也是非常常见的。与直接使用 IP 地址不同,这将 a) 仍然跳过 DNS b) 使浏览器将Host请求标头添加到 HTTP 请求中,例如允许本地服务器上的虚拟主机。

相关内容