详解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 相关文章推荐
基于Jquery+Ajax+Json的高效分页实现代码
Oct 29 Javascript
js操作table示例(个人心得)
Nov 29 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
Apr 12 Javascript
详谈javascript中的cookie
Jun 03 Javascript
微信QQ的二维码登录原理js代码解析
Jun 23 Javascript
AngularJS表单详解及示例代码
Aug 17 Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
深入理解ES6学习笔记之块级作用域绑定
Aug 19 Javascript
node打造微信个人号机器人的方法示例
Apr 26 Javascript
react项目从新建到部署的实现示例
Feb 19 Javascript
JavaScript原型链中函数和对象的理解
Jun 16 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
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
php获取图片信息的方法详解
2015/12/10 PHP
php常用数组函数实例小结
2016/12/29 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
python插入排序算法实例分析
2015/07/03 Python
Python之py2exe打包工具详解
2017/06/14 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python3如何使用range函数替代xrange函数
2020/10/05 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
HTML5拖拽API经典实例详解
2018/04/20 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
教师年度考核自我鉴定
2014/01/19 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
主持稿开场白
2015/06/01 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
MySQL 数据 data 基本操作
2022/05/04 MySQL