每日一个计算机小知识:DNS和hosts文件

每日分享一个有趣的计算机小知识,今日话题:DNS和hosts文件

DNS 是 Domain Name System 的缩写(网上也有的地方说是 Domain Name Server 域名服务器的缩写,其实这是误传,只是从英文简写角度来说首字母简写也是 DNS),中文叫域名系统,是互联网中的核心基础设施,它负责域名和对应的 IP 地址的映射。

简单点说 DNS 就相当于整个网络世界的通讯录,Host 主机相当于房子,IP地址相当于门牌号,通过门牌号也能直接找到朋友家,但是当朋友变多了就记不住这么多门牌号了,但是我知道朋友的名字(就相当于域名),这下想要去谁家,就先打个电话问下 DNS:我想去我的朋友小花家,DNS里就能找到你朋友家对应的门牌号,然后你就可以直接去了。

在1983年,美国人保罗·莫卡派乔斯最早提出了关于域名系统的详细架构,并开发了世界上第一个DNS域名系统服务器:Jeeves。在这之前如果想上网,需要依赖电脑本地的一个 hosts.txt 文本文件,文件中记录了网络地址和对应的 Host 主机名,就像下面这样的:

bash 复制代码
 # 主机地址      主机名      状态
 43 decimal     ucla       ACTIVE   # 美国加州大学洛杉矶分校的主机
 44 decimal     sri        ACTIVE   # 美国斯坦福研究院的主机
 45 decimal     ucsb       ACTIVE   # 美国加州大学圣巴巴拉分校的主机
 46 decimal     utah       ACTIVE   # 美国犹他大学的主机

这里的主机地址是NCP协议,所以看着和咱们现在的IP地址不一样。这个文本文件是需要人工手动维护的,如果哪个地址有更新就需要在自己电脑上手动更新。(关于hosts.txt的原始资料:github.com/ttkzw/hosts...

早期计算机只有大学或科研机构使用,用户也只有科研人员,整个网络里的Host也有限,大家可能都相互认识。随着接入网络里的主机增多,还有个人电脑的兴起,靠人工手动来维护整个网络世界的通讯录显然不现实,这也是后面IP、域名和DNS诞生的缘由。

尽管现在我们上网已经不需要自己手动维护 hosts.txt 文件,但是现在的电脑里依然能找到这一历史技术的痕迹,也就是我们现在电脑上的 hosts 文件,windows在这个目录下 C:\Windows\System32\drivers\etc\hosts ,macOS和Linux在这个目录下 /etc/hosts

bash 复制代码
127.0.0.1       localhost
::1             localhost

# 其他示例
192.168.1.1    cafe123.cn

默认只有本地回环地址 127.0.0.1 的映射,也就是让你在浏览器中输入 localhost 的时候能直接访问自己的本地主机设备,常用于本地开发,比如前端开发常用的 localhost:8080。

其实你也可以自己随便修改成 xiaoming,这样你在浏览器里输入 xiaoming:8080 也能访问你本地的服务。

除此之外,还可以用来解决网络访问问题,比如很多人访问 github 比较慢或者打不开,就可以通过修改自己本地电脑上 hosts 文件的方式解决。

当请求网络的时候,我们的电脑会先查看本地的 hosts 文件,如果里面已经记录了对应地址,那就不会再去向 DNS 服务器询问你朋友家的门牌号,而是直接去到对应的 Host 主机。

相关推荐
Dragon Wu7 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
一个有梦有戏的人8 小时前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
爬山算法8 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate
独断万古他化8 小时前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
我爱加班、、8 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
一 乐9 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
80530单词突击赢9 小时前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
hdsoft_huge9 小时前
1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
vue.js·spring boot·后端
lekami_兰10 小时前
RabbitMQ 延迟队列实现指南:两种方案手把手教你搞定
后端·rabbitmq·延迟队列
程序员泠零澪回家种桔子10 小时前
Sentinel核心能力解析:限流与集群方案
后端·架构·sentinel