计算机网络面试题(十七):地址栏输入URL后发生了什么?
文章目录
这也是一道面试常见题目,也是我们在学习计算机网络时需要去理解的一个知识点
DNS域名服务器
DNS(Domain Name System 域名系统)
互联网中识别主机的方式有两种:主机名和IP地址
人喜欢用名称记忆,通信链路中的路由却喜欢用定长、有层次结构地IP地址
DNS服务器作用:将主机名映射到IP地址
- DNS是一种由分层的DNS服务器实现的分布式数据库
- DNS运行在UDP协议上
- DNS使用53号端口
![]()
浏览器的查询一开始都会从本地DNS服务器开始,若本地DNS无目标IP地址,则会向根DNS服务器发送DNS查询请求
DNS查询方式:
- 递归查询
若根服务器无法告知本地DNS服务器下一步要访问哪个服务器,则使用递归查询
- 迭代查询
若根服务器可以告知下一步访问哪个服务器,则会使用迭代查询
地址栏输入URL后发生了什么
-
首先,用户在浏览器的URL地址栏输入地址(即想访问的资源)
-
然后,浏览器会根据你输入的URL地址,去查找域名是否被本地DNS服务器缓存,不同浏览器的本地DNS服务器设置不同
- 若本地DNS服务器缓存了对应域名,则直接返回保存好的IP地址
- 若本地DNS服务器没有缓存,浏览器就会发起系统调用,查询本机host文件是否配置了IP地址
- 若本地也没有,则会向网络发起一个DNS查询
- 在返回IP地址后,浏览器会和目标服务器建立一个TCP连接,在建立连接之后,浏览器会向服务器发送
HTTP-GET
请求
- 若只是请求一个简单页面,则直接返回
- 若是一些较大的网站站点,往往会重定向(3开头状态码),浏览器获得重定向码之后,在响应报文中找到重定向地址,重新开始第一步访问