详解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 鼠标滚轮事件
Apr 09 Javascript
javascript中的一些注意事项 更新中
Dec 06 Javascript
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
浅谈javascript中的闭包
May 13 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
Oct 31 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
Jan 10 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
JavaScript一元正号运算符示例代码
Jun 30 Javascript
微信小程序云开发如何实现数据库自动备份实现
Aug 16 Javascript
js获取url页面id,也就是最后的数字文件名
Sep 25 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
重置版战役片段
2020/04/09 魔兽争霸
PHP中$this和$that指针使用实例
2015/01/06 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
json数据的列循环示例
2013/09/06 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
Node.js数据库操作之连接MySQL数据库(一)
2017/03/04 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
Python三级菜单的实例
2017/09/13 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
django框架cookie和session用法实例详解
2019/12/10 Python
python 怎样进行内存管理
2020/11/10 Python
中科软笔试题和面试题
2014/10/07 面试题
单位介绍信范文
2014/01/18 职场文书
初中语文教学反思
2014/02/02 职场文书
表彰大会主持词
2014/03/26 职场文书
大学生求职计划书
2014/04/30 职场文书
演讲比赛策划方案
2014/06/11 职场文书
2015年消防工作总结
2015/04/24 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
2016年社区中秋节活动总结
2016/04/05 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers