详解http访问解析流程原理


Posted in Javascript onOctober 18, 2017

详解http访问解析流程原理

http访问网址域名解析流程:

1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。

如下图:

详解http访问解析流程原理

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
location.search在客户端获取Url参数的方法
Jun 08 Javascript
JavaScript 程序编码规范
Nov 23 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
javascript之Boolean类型对象
Jun 07 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
Dec 01 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 Javascript
vue基础之事件v-onclick="函数"用法示例
Mar 11 Javascript
解决layui动态添加的元素click等事件触发不了的问题
Sep 20 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 Javascript
js实现会跳动的日历效果(完整实例)
Oct 18 #Javascript
打字效果动画的4种实现方法(超简单)
Oct 18 #Javascript
Angularjs 手写日历的实现代码(不用插件)
Oct 18 #Javascript
基于JavaScript表单脚本(详解)
Oct 18 #Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 #Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 #Javascript
BACKBONE.JS 简单入门范例
Oct 17 #Javascript
You might like
PHP常用代码
2006/11/23 PHP
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
Python增强赋值和共享引用注意事项小结
2019/05/28 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
客户代表实习人员自我鉴定
2013/09/27 职场文书
高中生毕业自我鉴定
2013/10/10 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
简历里的自我评价
2014/01/31 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
2015元旦联欢晚会结束语
2014/12/14 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
python中的None与NULL用法说明
2021/05/25 Python