浏览器首先会对URL进行解析
下面以http://www.server.com/dir1/file1.html为例
当没有路径名时,就代表访问根目录下事先设置的默认文件,也就是 /index.html
或者 /default.html
对URL进行解析之后,浏览器确定了 Web 服务器和文件名,就会根据这些信息来生成 HTTP 请求消息。
但是光有web服务器名www.server.com是不够的,只知道一个人的名字是找不到人的,我们还需要服务器的IP地址。
而DNS服务器就可以通过服务器名提供它的IP地址(相当于一个电话本,通过人名查询电话号码),
DNS域名是分层级的,越靠右层级越高。
例如www.server.com实际上是www.server.com.
- 根 DNS 服务器(.)
- 顶级域 DNS 服务器(.com)
- 权威 DNS 服务器(server.com)
在寻找IP地址时,会先在浏览器缓存中寻找是否有和目标服务器名对应的IP地址,如果没有,则会到操作系统缓存中寻找,如果没有再问hosts文件中寻找,还是没有,才会到本地DNS服务器中去寻找,如果还是没有,那么本地DNS服务器会到根DNS服务器中进行询问,根服务器说你去问.com顶级域名服务器吧,而.com顶级域名服务器会让你去问负责www.server.com的权威域名服务器,权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS服务器。