详解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 相关文章推荐
js word表格动态添加代码
Jun 07 Javascript
window.name代替cookie的实现代码
Nov 28 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
Nov 15 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
Nov 18 Javascript
jquery中ajax跨域方法实例分析
Dec 18 Javascript
Bootstrap 布局组件(全)
Jul 18 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 Javascript
Javascript中的this,bind和that使用实例
Dec 05 Javascript
微信小程序实现签到弹窗动画
Sep 21 Javascript
node.js通过url读取文件
Oct 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
PHP多个版本的分析解释
2011/07/21 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
jQuery中$(function() {});问题详解
2015/08/10 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
2019/01/21 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
js实现弹幕墙效果
2020/12/10 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
python实现井字棋游戏
2020/03/30 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
财务会计专业个人求职信范本
2014/01/08 职场文书
门诊手术室工作制度
2014/01/30 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
企业负责人任命书
2014/06/05 职场文书
推普周国旗下讲话稿
2014/09/21 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python