hosts文件

hosts文件

前面我们讲解了DNS域名解析的流程以及原理(详见DNS解析),可以了解到DNS服务器最大的作用便是存储着域名到IP地址的映射,以便用户在通过浏览器请求某个页面时,将用户输入的域名解析为对应的IP地址。

接下来我们通过一次域名解析的完整流程来认识hosts文件(下图是一次域名解析的完整过程,对[MY PC]框图以外不理解的可以参考DNS解析
在这里插入图片描述
接下来我们对上图进行一个较为深刻的解读

假定我们在请求www.oracle.com站点
当我们在浏览器导航栏输入一条域名并按下回车时,域名解析的过程便开始了。

  • 首先,检查浏览器自身缓存,若在不久之前访问过该站点,那么浏览器自身缓存中包含域名www.oracle.com到其IP地址的解析,只进行过程1和过程2
    浏览器自身缓存一般保存在
    C:\Users\AppData\Local\Microsoft\Edge\User Data\Default\Cache
    在这里插入图片描述
  • 如果浏览器缓存中不包含域名www.oracle.com到其IP地址的映射,那么便从本机操作系统的DNS缓存中查找,对应于图中的过程3和过程4.
    可以通过ipconfig /displaydns命令来查看本机操作系统中的DNS缓存
    通过ipconfig /flushdns命令来删除本机操作系统中的DNS缓存
    在这里插入图片描述
    在这里插入图片描述
  • 如果本机操作系统的DNS缓存不包含域名www.oracle.com到其IP地址的映射,那么便从本机hosts文件(本文的核心内容!!!)中查找看是否含有域名www.oracle.com到其IP地址的映射,对应于过程5和过程6.
    hosts文件: Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”(并不是真正的关系型数据库!)
    hosts文件位置
    C:\Windows\System32\drivers\etc\hosts
    在这里插入图片描述
    我们可以通过修改hosts文件来修改域名和IP地址的映射关系,这样在域名解析的过程中如果浏览器缓存和本机操作系统中的DNS缓存都不包含该映射关系时,按照hosts文件中的映射关系进行解析。
    例如我们想通过域名www.huogaohan.com来请求github.com站点时可以通过以下步骤完成
    在这里插入图片描述
    例如在浏览器本地缓存和OS的DNS缓存中都没有github.com与其IP地址的映射时,我们访问GitHub时相对较慢。我们可以通过在hosts文件中添加github.com到其IP地址的映射,来避免访问远程服务器的耗时,在一定程度上加快访问。
    在这里插入图片描述
  • 如果hosts文件中不包含域名www.oracle.com到其IP地址的映射,那么应用程序便会调用本地DNS客户端,通过访问远程服务器来获取所需要的映射关系,对应于图中过程7到过程16(过程7到过程16的详细解读参考我的另一篇文章DNS解析

如果以上过程并无法查找到所需要的域名-IP地址映射关系(不出意外都会找到),还会有一些后续过程,这里不再赘述,若后续过程还是无法找到,那么本次域名解析宣告失败

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值