详解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 相关文章推荐
Javascript Select操作大集合
May 26 Javascript
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 Javascript
Jquery 获得服务器控件值的方法小结
May 11 Javascript
Jquery AJAX 用于计算点击率(统计)
Jun 30 Javascript
node.js中的fs.lchownSync方法使用说明
Dec 16 Javascript
Knockoutjs 学习系列(二)花式捆绑
Jun 07 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
微信小程序wx.request实现后台数据交互功能分析
Nov 25 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
微信小程序实现日历签到
Sep 21 Javascript
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
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 处理图片的类实现代码
2009/10/23 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python装饰器用法示例小结
2018/02/11 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
局域网标准
2016/09/10 面试题
专科毕业生自我鉴定
2013/12/01 职场文书
《白鹅》教学反思
2014/04/13 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
大学生逃课检讨书
2015/05/04 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
python脚本框架webpy模板赋值实现
2021/11/20 Python