详解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 相关文章推荐
ExtJS Grid使用SimpleStore、多选框的方法
Nov 20 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
Oct 14 Javascript
javascript框架设计之框架分类及主要功能
Jun 23 Javascript
javascript的BOM
May 03 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
JavaScript实现构造json数组的方法分析
Aug 17 Javascript
vue中v-for循环给标签属性赋值的方法
Oct 18 Javascript
TypeScript中条件类型精读与实践记录
Oct 05 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 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
python编写爬虫小程序
2015/05/14 Python
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
Django自定义分页与bootstrap分页结合
2021/02/22 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
Python调用Windows命令打印文件
2020/02/07 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
护理毕业生自荐信范文
2013/12/22 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
药店采购员岗位职责
2014/09/30 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
Python开发五子棋小游戏
2022/05/02 Python