IP地址、域名、DNS
# IP地址、域名、DNS(通俗理解)
当我们在浏览器输入网址,回车之后会发生什么呢?
- 网站(软件)需要在运行在服务器(硬件)
APP运行在手机上,而网站和APP不一样,网站是对外服务的,所以我们要让别人能够顺着网线找到这个服务器。
- 别人怎么找到我们的服务器
服务器接入互联网中之后,会被分配一个IP地址。这个IP地址就像是服务器的手机号,它是全球唯一的。这时候服务器有了IP地址,在浏览器上直接输入IP地址是可以访问的。
- 域名作为IP的代替
但是并不是所有的IP地址都很好记,这时候我们需要域名代替IP地址,方便记忆,注册域名就是申请注册全球唯一的名字。
- DNS记录
设置域名的DNS记录,指向服务器IP地址。DNS像是一个公开的全球通讯录,负责记录域名+对应的IP地址。IP地址还可能像手机号一样会变更(比如迁移网站),这时候我们只要更新DNS记录就可以了。
# 输入网址回车后的过程
- 浏览器拿到网址,去问DNS,这个域名对应的IP地址是什么?
- DNS系统查询之后把IP地址告诉浏览器。
- 浏览器拿到IP地址,发起通信到服务器。
- 服务器收到信息,处理后返回数据。
- 浏览器得到数据,在网页呈现出来。
# 域名是什么
域名就是www.xxx.com(这是最简单的一种)
.com之后还可以有东西,称之为根
域名从左向右,级别逐渐增高
# DNS的作用是什么
DNS
(Domain Name System)就是将打在地址栏的域名转化为IP地址的东西。
# 域名解析过程
- 递归查询
在上图中
主机先是想本地域名服务器发送请求
如查不到,本地域名服务器向根域名服务器发送请求(找别人)
如还查不到,根域名域名服务器向顶级域名服务器发送请求(找别人)
如还查不到,顶级域名服务器向权限域名服务器发送请求(找别人)
可以看到每一次向下一个查询的服务器都变了,不是主机一个个去问,而是服务器自己一个个问下去。
- 迭代查询
在上图中
主机先是想本地域名服务器发送请求
如查不到,本地域名服务器就让主机去向根域名服务器发送请求(主机去找,本地域名给目标根域名服务器的IP地址)
如还查不到,根域名域名服务器让主机去向对应的顶级域名服务器发送请求(主机去找,根域名给目标顶级域名服务器的IP地址)
如还查不到,顶级域名服务器让主机去向权限域名服务器发送请求(主机去找,顶级域名给目标权限域名服务器的IP地址)
可以看到这里是主机一个个问的地址
- 高速缓存
为了减少多次查询同一个域名的资源浪费,本地域名服务器会存储最近使用的ip地址解析,下次再访问同一个域名就不需要这么多查询步骤。
同时这个高速缓存主机本身也有存储。
同时本地域名服务器还可以对顶级域名服务器,权限域名服务器的地址进行缓存,下一次即使是不知道的ip地址,查询也可以更快。
高速缓存为了保持正确性,需要定时更新。