DNS是什么?工作原理、工作流程总结
目录
HTTP网络请求过程:
DNS处于请求的哪个位置呢?
DNS基本工作:
具体如何查找呢?
总结域名解析过程:
HTTP网络请求过程:
1.域名解析
2.TCP三次握手
3.tcp连接后发出Http请求
4.服务器响应Http请求
5.浏览器解析,并请求相对应资源
6.渲染页面
DNS处于请求的哪个位置呢?
他在过程中是 第一步 域名解析
如下图,在解析域名对应的地址时,在TCP三次握手之前。
DNS基本工作:
接受客户端的查询消息
根据消息能容返回响应
DNS服务器会从域名与IP地址的对照表中寻找相应的记录,并返回IP地址
客户端的消息包含以下三种消息
1.域名 = www.cccc
2.Class = IN
3.记录类型 = A
具体如何查找呢?
从域名与IP地址的对照表中寻找相应的记录,并返回IP地址
1.首先访问最近的一台DNS服务器(客户端的TCP/IP设置中填写的DNS服务器地址)
2.如果没有就会重新寻找
(1)理想状态: 从顶层向下查找,即根域DNS服务器,如果没有,他通过判断知道你是com域的,就会告诉你去我管理的com域问问,于是最近的DNS服务器就去发送查询消息,以此类推就找到了最终IP地址。如下图
(2)现实中:一台DNS服务器管理多个域,上级域可能与下级域在一台服务器,并且DNS服务器还有缓存功能,直接查找,如果查找不到,缓存本身会记录相关信息,可以直接从缓存记录的位置开始查找,不用从根域开始寻找。
总结域名解析过程:
按顺序查找,找到则成功退出
1.浏览器的DNS缓存查找,没有则2
2.操作系统的DNS缓存查找,没有则3
3.host文件查找,没有则4
4.TCP/IP设置的本地DNS服务器查找,没有则5
5.DNS服务器的缓存,如果缓存中也没找到,没有则6
6.13台根DNS,同上问讲的理想状态寻找,一层域,一层域找,就像俄罗斯套娃一样。
参考书籍:《网路是怎样的连接的》
DNS是什么?工作原理、工作流程总结相关推荐
- ARKit从入门到精通-ARKit工作原理及流程介绍
2017-06-15 坤小 Cocoa开发者社区 转载请注明出处:http://www.jianshu.com/p/0492c7122d2f 1.1-写在前面的话 1.2-ARKit与SceneKit ...
- ARKit从入门到精通(2)-ARKit工作原理及流程介绍
转载请注明出处:ARKit从入门到精通(2)-ARKit工作原理及流程介绍 1.1-写在前面的话 1.2-ARKit与SceneKit的关系 1.3-ARKit工作原理 1.3.1-ARSCNView ...
- springmvc工作流程_springMVC工作原理及流程详细讲解
简述 本文主要介绍springMVC工作原理. 工作原理 客户端发送HTTP请求,DispatcherServlet控制器拦截到请求,调用HandlerMapping 解析请求对应的Handler,H ...
- Spark SQL架构工作原理及流程解析
Spark SQL架构工作原理及流程解析,spark sql从shark发展而来,Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析.逻辑执行计划翻译.执行计划优化等逻辑. Sp ...
- 身份证OCR识别工作原理及流程
随着互联网科技.移动互联科技的发展和云端计算服务.移动智能设备的普及(性能提升),智能OCR识别技术在云端.服务器端及移动端的应用也得到了长足的发展.今天为大家介绍下身份证OCR识别如何快捷.准确的识 ...
- SSM三大框架+SpringMVC的工作原理及其流程
SSM三大框架+SpringMVC的工作原理及其流程 一.SSM中各层作用及关系 1.持久层:DAO层(mapper层)(属于mybatis模块) DAO层(Mapper层):主要负责与数据库 ...
- JVM 工作原理和流程
转 Java 详解 JVM 工作原理和流程 <div class="article-info-box"><div class="article-bar- ...
- struts2、hibernate工作原理和流程
2019独角兽企业重金招聘Python工程师标准>>> struts2原理 在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Control ...
- java ssh实现原理_SSH三大框架的工作原理及流程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Hibernate工作原理及为什么要用? 原理 通过Configuration().configure();读取并解析hibernate.cfg.xml配 ...
- SSH框架笔记_SSH三大框架的工作原理及流程
Hibernate工作原理及为什么要用? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件 2.由hibernate.cfg ...
最新文章
- Sumatra项目用OpenCL提高了Java的性能
- U盘快速​安装Ubuntu系统
- html 使用符号设置固定链接,关于dw-question-answer的调试和固定链接id.html设置
- PTA5-53 两个有序序列的中位数
- CCF NOI1020 数字识别
- 解决WORD输出Html图片Jpg变模糊的问题
- 谷歌邮箱SMTP小白教程
- 大学三年来的心路历程分享
- python中fact_python中fact函数使用
- Python——爬取喜马拉雅音频(抖音最火翻唱)
- 导致网页图片字体模糊的原因
- 1213:八皇后问题
- sed编辑器之删除行
- Postman安装(图文)
- 基于浏览器请求的国际化实现
- 计算机组成原理算术逻辑实验,计算机组成原理-算术逻辑运算单元实验.doc
- 数据分析——数据处理
- enet java 可靠udp,可靠的UDP编程(ENET库)
- 2022 GopherChina 出品人及演讲内容揭晓(二)
- 冲量在线携手中国电信研究院、北京电信和海光信息打造的数信链网的入选2022“星河”隐私计算标杆案例
热门文章
- 物联网应用领域(全)
- 手机上将mp4转换成amv_如何在Linux上将所有文本从大写转换为小写?
- 计算机技术专硕学制两年的学校,专硕一般读几年
- 三月月赛 1005 wuli通通和doge(细节处理)
- 带阵列卡的服务器如何装系统,带阵列卡的服务器能不能做ghost
- Windows 10, version 22H2 (released Oct 2022) 简体中文版、英文版下载
- 使用facebook账号登录
- Facebook登陆时遇到的问题
- 线程优先级 Priority
- 一个整数“犯二的程度”