详解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 相关文章推荐
innerText 使用示例
Jan 23 Javascript
Javascript加载速度慢的解决方案
Mar 11 Javascript
解决jquery版本冲突的有效方法
Sep 02 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
jQuery ajaxForm()的应用
Oct 14 Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
vue.js学习之UI组件开发教程
Jul 03 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
记录一篇关于redux-saga的基本使用过程
Aug 18 Javascript
JavaScript React如何修改默认端口号方法详解
Jul 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
对javascript和select部件的结合运用
2006/10/09 PHP
php MYSQL 数据备份类
2009/06/19 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
2016/12/27 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
Python多线程实例教程
2014/09/06 Python
python设计模式大全
2016/06/27 Python
Python制作Windows系统服务
2017/03/25 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
2019/12/11 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
使用HTML和CSS3绘制基本卡通图案的示例分享
2015/11/06 HTML / CSS
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
资深地理教师自我评价
2013/09/21 职场文书
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
火灾现场处置方案
2014/05/28 职场文书
重阳节慰问信
2015/02/15 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书