详解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 相关文章推荐
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
Jan 09 Javascript
javascript第一课
Feb 27 Javascript
Jquery调用webService远程访问出错的解决方法
May 21 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 Javascript
javascript实现图片自动和可控的轮播切换特效
Apr 13 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
Dec 03 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
javascript insertAfter()定义与用法示例
Jul 25 Javascript
基于Node.js的WebSocket通信实现
Mar 11 Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
JS/CSS实现字符串单词首字母大写功能
Sep 03 Javascript
vue实现前端分页完整代码
Jun 17 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文件操作的详细诠释
2013/06/21 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
php 中phar包的使用教程详解
2018/10/26 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
vue组件命名和props命名代码详解
2019/09/01 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
python中的多重继承实例讲解
2014/09/28 Python
python Opencv将图片转为字符画
2021/02/19 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python里运用私有属性和方法总结
2019/07/08 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
业务总经理岗位职责
2014/02/03 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
影视后期实训报告
2014/11/05 职场文书
2015年质检工作总结
2015/05/04 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
django注册用邮箱发送验证码的实现
2021/04/18 Python
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android