url - 如果我输入 IP 地址而不是 URL,是否会跳过 DNS?
问题描述
这是我目前的理解:
- 我输入一个 URL (www.google.com) 然后回车
- 浏览器检查缓存中的 DNS 记录以查找 URL 的相应 IP 地址。
- 一旦找到 IP 地址,就建立了连接,依此类推……
我的问题是,如果我直接输入 IP 地址会发生什么?浏览器是否仍会尝试查找 DNS 记录或联系域名系统?
我相信浏览器会识别出它是一个 IP 地址并跳过 DNS 查找,但我不能 100% 确定这一切是如何工作的。
有没有办法实时跟踪我在输入 URL 后按 Enter 后会发生什么?
解决方案
当您按照您的暗示浏览网页时,DNS 的目的是将名称转换为 IP 地址,以便程序知道连接到哪里。
因此,根据定义,如果你给它一个 IP 地址而不是一个名称,就没有什么要翻译的了,因此不需要 DNS。
但是请注意,基于 IP 而不是名称的浏览可能无法按预期工作,尤其是在 HTTPS 领域,甚至在 HTTP 中。这是因为名称不仅在 URL 中,而且在 TLS 级别(通过 SNI 扩展以允许在单个 IP 上的 HTTPS 中进行虚拟托管)和 HTTP(S) 级别的host
标头中渗透到远下方。
如果您想更多地评估在您的特定情况下发生的事情(因为以上是通用的,所有规则都有例外),您可以:
- 安装您控制的本地递归 DNS 解析器,将您的操作系统指向它并查看日志文件以查看已要求的名称或任何其他查询
- 同时运行网络捕获,就像使用 Wireshark 一样,但请注意,它可能或多或少难以解释,特别是如果您同时有很多其他流量。如果您的操作系统使用基于 TLS 的 DNS 或基于 HTTPS 的 DNS,那么网络跟踪将更加难以理解。
推荐阅读
- python - 根据日期在python中合并不同长度的数据帧
- c++ - 读取 QDomElement 的原始值
- oracle - 如何通过 sqlplus 假脱机解释 Oracle 的结果?
- python - 将带有反斜杠的stdin字符串存储到变量中
- r - r - 如何在 dabestr 中创建用于绘图的循环?
- groovy - 如何将 Base64 字符串解码为 png/jpg
- java - Spring Boot:尝试读取资源文件夹中的目录内容从 jar 读取时会产生 FileNotFoundException
- list - Pyspark:如何遍历包含列表元素的数据框列?
- node.js - 在express js中调用函数后没有响应进入api
- django - Django FilePathField 引发文件未找到错误