DNS为什么很难学习? 为什么学习DNS如此困难?
DNS为什么很难学习
为大家介绍的是DNS为什么很难学习的相关知识,一定能解决您的问题的,一起来了解吧!
我经常写关于我发现难以学习的技术的文章。不久前,我的朋友 Sumana 向我提出了一个有趣的问题 – 为什么这些东西学起来那么难?为什么它们看起来如此神秘?
以 DNS 为例。我们从 80 年代开始使用 DNS(已经超过 35 年了!)。它在互联网上的每个网站中都使用。而且它相当稳定 – 在很多方面,它的工作方式与 30 年前完全相同。
但是我花了好几年的时间才弄清楚如何自信地调试 DNS 问题,我也见过很多其他程序员在调试 DNS 问题上苦苦挣扎。那么到底发生了什么呢?
以下是关于为什么学习排除 DNS 问题很困难的几点思考。
(我不会在这篇文章中详细解释 DNS,更多关于 DNS 如何工作的信息,请参阅 《用一个周末实现一个 DNS》 或我的 DNS 方面的博文)

并不是因为 DNS 非常难
当我最终学会如何排除 DNS 问题时,我的反应是“什么,就这样吗???这并不难!”我感觉有点被骗了!我可以在 几个小时内向你解释关于 DNS 令我感到困惑的一切事情。
那么 – 如果 DNS 并不是那么复杂,为什么我花了这么多年的时间才弄清楚如何排除相当基本的 DNS 问题(比如“即使我已经正确设置了,我的域名仍无法解析”或者“dig命令和我的浏览器的 DNS 结果不一致,为什么?”)?
而且,在发现 DNS 学习困难方面,我并不孤单!我与许多经验丰富的程序员朋友讨论过多年来的 DNS 问题,其中很多人要么:
- 不敢轻易对其网站进行简单的 DNS 更改
- 或对 DNS 工作原理的基本事实感到困惑(比如记录是 拉取的而非推送的)
- 或对 DNS 基础知识了解得很好,但却和我一样存在一些知识盲点(负缓存和
dig命令及浏览器如何以不同方式进行 DNS 查询的细节)
因此,如果我们都面临着 DNS 的相同困扰,到底发生了什么?为什么对许多人来说学习 DNS 如此困难?
以下是我的一些看法。
很多系统是隐藏的
当你在计算机上发起 DNS 请求时,基本的过程如下:
- 你的计算机向一个名为“解析器”的服务器发起请求。
- 解析器检查其缓存,并向一些称为“权威名称服务器”的其它服务器发起请求。
以下是你看不到的一些内容:
- 解析器的缓存。里面有什么内容?
- 在你的计算机上进行 DNS 请求的库代码是哪个(是否是 libc 的
getaddrinfo函数?如果是,它是来自 glibc、musl 还是苹果?是你的浏览器的 DNS 代码吗?还是其他自定义的 DNS 实现?)所有这些选项的行为略有不同,并且有不同的配置、缓存方法、可用功能等等。例如,musl DNS 直到2023 年初才支持 TCP。
相关阅读
-
营销型网站建设推广公司 网站建设企业建站
IT袋网小编为你介绍营销型网站建设推广公司和网站建设企业建站的相关经验,接下来分享详细内容。 从线下营销到线上营销是一个转变非常大的过程,线下的营销模式和线上的营销模式是截
-
企业如何进行网络营销 企业网站营销实现方式
为大家说一说企业如何进行网络营销和企业网站营销实现方式的话题,一起来了解了解吧。 在互联网发展日新月异的当前,信息技术不但是推动我国经济与城市向前发展的重要动力,同时,在
-
IP等级的基本构成 IP等级的基本组成要素
为大家介绍的是IP等级的基本构成方面的知识,相关内容具体如下: IP 等级由两个数字组成,乍一看可能会令人困惑,但它们的构成实际上非常简单。 第一个数字表示防尘等级,即对固体颗粒
-
dns服务器未响应怎么解决 关于DNS服务器未响应解决方法
小编为你解答dns服务器未响应怎么解决和关于DNS服务器未响应解决方法的相关知识,接下来就是全面介绍。 我们在使用电脑的时候经常会遇到各种各样的网络问题,例如最近就有Win11电脑用户


