码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 图解域名解析成IP的全过程(你浏览器摁下一个网址后发生了啥?)


    文章目录

    • IP解析步骤
      • 第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址
      • 第二步:如果在浏览器缓存中没有找到IP,那么将继续查找本机系统是否缓存过IP
      • 第三步:向本地域名解析服务系统发起域名解析的请求
      • 第四步:向根域名解析服务器发起域名解析请求
      • 第五步:根域名服务器返回顶级域名解析服务器地址
      • 第六步:向顶级域名服务器发起解析请求
      • 第七步:顶级域名服务器接收请求并返回权限域名服务器
      • 第八步:权限域名服务器返回IP地址给本地服务器
      • 第九步:本地域名服务器缓存解析结果
    • 图解演练

    IP解析步骤

    第一步:检查浏览器缓存中是否缓存过该域名对应的IP地址

    用户通过浏览器浏览过某网站之后,浏览器就会自动缓存该网站域名对应的地址,当用户再次访问的时候,浏览器就会从缓存中查找该域名对应的IP地址,因为缓存不仅是有大小限制,而且还有时间限制(域名被缓存的时间通过属性来设置),所以存在域名对应的找不到的情况(也确实很常见)。

    当浏览器从缓存中找到了该网站域名对应的地址,那么整个解析过程结束,如果没有找到,将进行下一步骤。

    另外:对于的缓存时间问题,不宜设置太长的缓存时间,时间太长,如果域名对应的发生变化,那么用户将在一段时间内无法正常访问到网站,如果太短,那么又造成频繁解析域名。

    第二步:如果在浏览器缓存中没有找到IP,那么将继续查找本机系统是否缓存过IP

    如果第一个步骤没有完成对域名的解析过程,那么浏览器会去系统缓存中查找系统是否缓存过这个域名对应的地址,也可以理解为系统自己也具备域名解析的基本能力。

    在系统中,可以通过设置文件来将域名手动绑定到某上,文件位置在。对于普通用户,并不推荐自己手动绑定域名和,对于开发者来说,通过绑定域名和,可以轻松切换环境,可以从测试环境切换到开发环境,方便开发和测试。

    也因此在系统中,黑客常常修改用户的电脑的文件,将用户常常访问的域名绑定到他指定的上,从而实现了本地解析,导致这些域名被劫持。在或者系统中,文件在,修改该文件也可以实现同样的目的。

    前两步都是在本机上完成的,从第三步开始,才正在地向远程DNS服务器发起解析域名的请求。

    第三步:向本地域名解析服务系统发起域名解析的请求

    如果在本机上无法完成域名的解析,那么系统只能请求本地域名解析服务系统进行解析,本地域名系统一般都是本地区的域名服务器,比如你连接的校园网,那么域名解析系统就在你的校园机房里,如果你连接的是电信、移动或者联通的网络,那么本地域名解析服务器就在本地区,由各自的运营商来提供服务。

    第四步:向根域名解析服务器发起域名解析请求

    本地域名解析器还没有完成解析的话,那么本地域名解析服务器将向根域名服务器发起解析请求。

    第五步:根域名服务器返回顶级域名解析服务器地址

    本地域名解析向根域名服务器发起解析请求,根域名服务器返回的是所查域的通用顶级域地址,常见的通用顶级域有、com、cn、org等。

    第六步:向顶级域名服务器发起解析请求

    本地域名解析服务器向顶级域名服务器(gTLD服务器)发起请求。

    第七步:顶级域名服务器接收请求并返回权限域名服务器

    服务器接收本地域名服务器发起的请求,并根据需要解析的域名,找到该域名对应的域名服务器,通常情况下,这个服务器就是你注册的域名服务器,那么你注册的域名的服务商的服务器将承担起域名解析的任务。

    第八步:权限域名服务器返回IP地址给本地服务器

    服务器查找域名对应的地址,将地址连同值返回给本地域名服务器。

    第九步:本地域名服务器缓存解析结果

    本地域名服务器缓存解析后的结果,缓存时间由时间来控制。

    图解演练

    就拿浏览器输入www.yyl.com为例子,我们解析步骤如下所示(俺自己画的,拿图的时候给俺个一键三连谢谢),就不写文字解释了,下面画的挺详细的:

    在这里插入图片描述

  • 相关阅读:
    .Net(C#)常用转换byte转uint32、byte转float等
    茶饮门店本地生活抖音团购运营方案计划书
    一些现代 Javascript 技巧
    机器视觉(三):摄像机标定技术
    protobuf 基本语法总结
    (22杭电多校二)Two Permutation (dp),Package Delivery (贪心)
    基于协同过滤算法的东北特产销售系统的设计
    CAS与原子类
    面向对象的三大特征
    【MySQL | 进阶篇】01、存储引擎
  • 原文地址:https://blog.csdn.net/weixin_45525272/article/details/126690074
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号