前端学习计算机网络——详解DNS具体作用过程

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 设身处地想一下,若你想让用户记住你的网站,你总不能让他记一大串数字吧,更何况,以后用到IPv6,需要记忆的数字更多,所以最好的做法就是给这些IP一个名称,我们称之为域名,而当我们访问这些域名的时候,具体访问哪个IP这件事就要交给DNS去做了,本文也将详细介绍一下DNS的具体作用过程

一、域名


文章开头简单介绍了什么是域名,那么我们来看看域名到底长什么样


例如我们常见的 www.baidu.combaidu.com 就是百度官网的域名,其中 baidu 是百度申请这个域名时自己起的名字,.com 表示的就是该域名所属的服务器,这里我们将这种域名称为顶级域名,也可以叫它一级域名


还有一些域名,例如 example.cn.com 称之为二级域名example.mail.cn.com 称之为三级域名 ……


总得来说可以理解为域名中有几个 . ,就称之为几级域名


现在市面上所有的域名都会由某个服务器进行管理的,例如 .comcom服务器 管理 、.cncn服务器 管理


那么这些管理域名的服务器又由一个根(root)服务器来进行管理,所以它们的层级关系就像一个树结构,如下图所示:


2cd87b2171a5053d101a40cd533736c9.png


图中,com服务器 内有一个 cn 服务器,而 cn服务器 内又管理着一个 mail服务器,这样的层级关系就可以用于获取 三级域名 example.mail.cn.com 对应的IP地址了


因此我们可以把该树结构层次为2的所有结点的域名称为第一层域名;将层次为3的所有结点的域名称为第二层域名;层次为4的所有结点的域名称为第三层域名,以此类推


二、DNS


DNS(Domain Name System)其实是一个管理着域名和IP地址之间的有效关系的系统,相当于一个大型的数据库


我们的主机通过域名请求某个网页时,会先向我们设置的DNS服务器发送请求,然后DNS服务器向最近的一个根服务器发送请求,根服务器会将第一层域名服务器的IP访问地址返回给DNS服务器,接着DNS服务器会根据这个IP地址去访问对应的域名服务器,若域名具有多个层级,则域名服务器会接着返回下一层次域名服务器的IP地址给DNS以便于其深度访问


我们来看一下访问 example.mail.cn.com 的简化过程图


abeb551aa3f5858556bbd505a948e563.png


为了提高效率,DNS服务器还提供了一种技术叫做高速缓存,是用于短时存储已访问过的域名服务器IP的,因此DNS服务器真正的作用顺序不是先向根服务器发送请求,而是先查询缓存中是否有想要获得的IP地址,若有则直接返回给我们主机;若没有则按照上述流程进行请求


假设我们刚才已经请求访问过 example.mail.cn.com 了,那么此时再次请求该域名对应的网址时,可以从缓存中直接读取真正的IP地址,过程如图所示:


6af47d4475a46e7b4b841a5071f97aa6.png


其实DNS服务器的缓存时间不会特别长,因为如果你第一次访问完后缓存了IP,然后此时原IP地址改掉了,那么我们每次访问的都是旧的IP地址,就会一直报错,所以缓存时间较短就是为了避免这样的问题

相关文章
|
20天前
|
机器学习/深度学习 编解码 前端开发
探索无界:前端开发中的响应式设计深度解析####
【10月更文挑战第29天】 在当今数字化时代,用户体验的优化已成为网站与应用成功的关键。本文旨在深入探讨响应式设计的核心理念、技术实现及最佳实践,揭示其如何颠覆传统布局限制,实现跨设备无缝对接,从而提升用户满意度和访问量。通过剖析响应式设计的精髓,我们将一同见证其在现代Web开发中的重要地位与未来趋势。 ####
42 7
|
22天前
|
编解码 前端开发 UED
探索无界:前端开发中的响应式设计深度解析与实践####
【10月更文挑战第29天】 本文深入探讨了响应式设计的核心理念,即通过灵活的布局、媒体查询及弹性图片等技术手段,使网站能够在不同设备上提供一致且优质的用户体验。不同于传统摘要概述,本文将以一次具体项目实践为引,逐步剖析响应式设计的关键技术点,分享实战经验与避坑指南,旨在为前端开发者提供一套实用的响应式设计方法论。 ####
42 4
|
23天前
|
前端开发 开发者 C++
独家揭秘:前端大牛们如何高效学习新技术,保持竞争力!
【10月更文挑战第31天】前端技术飞速发展,如何高效学习新技术成为关键。本文通过对比普通开发者与大牛们的策略,揭示了高效学习的秘诀:明确目标、主动探索、系统资源、实践应用和持续学习。通过这些方法,大牛们能更好地掌握新技术,保持竞争力。示例代码展示了如何通过实践加深理解。
37 4
|
23天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
64 1
|
1月前
|
前端开发 JavaScript 开发者
揭秘前端高手的秘密武器:深度解析递归组件与动态组件的奥妙,让你代码效率翻倍!
【10月更文挑战第23天】在Web开发中,组件化已成为主流。本文深入探讨了递归组件与动态组件的概念、应用及实现方式。递归组件通过在组件内部调用自身,适用于处理层级结构数据,如菜单和树形控件。动态组件则根据数据变化动态切换组件显示,适用于不同业务逻辑下的组件展示。通过示例,展示了这两种组件的实现方法及其在实际开发中的应用价值。
35 1
|
2月前
|
缓存 前端开发 JavaScript
前端的全栈之路Meteor篇(二):容器化开发环境下的meteor工程架构解析
本文详细介绍了使用Docker创建Meteor项目的准备工作与步骤,解析了容器化Meteor项目的目录结构,包括工程准备、环境配置、容器启动及项目架构分析。提供了最佳实践建议,适合初学者参考学习。项目代码已托管至GitCode,方便读者实践与交流。
|
2月前
|
人工智能 资源调度 数据可视化
【AI应用落地实战】智能文档处理本地部署——可视化文档解析前端TextIn ParseX实践
2024长沙·中国1024程序员节以“智能应用新生态”为主题,吸引了众多技术大咖。合合信息展示了“智能文档处理百宝箱”的三大工具:可视化文档解析前端TextIn ParseX、向量化acge-embedding模型和文档解析测评工具markdown_tester,助力智能文档处理与知识管理。
|
2月前
|
人工智能 前端开发 JavaScript
拿下奇怪的前端报错(一):报错信息是一个看不懂的数字数组Buffer(475) [Uint8Array],让AI大模型帮忙解析
本文介绍了前端开发中遇到的奇怪报错问题,特别是当错误信息不明确时的处理方法。作者分享了自己通过还原代码、试错等方式解决问题的经验,并以一个Vue3+TypeScript项目的构建失败为例,详细解析了如何从错误信息中定位问题,最终通过解读错误信息中的ASCII码找到了具体的错误文件。文章强调了基础知识的重要性,并鼓励读者遇到类似问题时不要慌张,耐心分析。
|
2月前
|
JSON 前端开发 JavaScript
前端模块打包器的深度解析
【10月更文挑战第13天】前端模块打包器的深度解析

相关产品

  • 云解析DNS
  • 推荐镜像

    更多