计算机网络面试题(十七):地址栏输入URL后发生了什么?

计算机网络面试题(十七):地址栏输入URL后发生了什么?
计算机网络面试题(十七):地址栏输入URL后发生了什么?


这也是一道面试常见题目,也是我们在学习计算机网络时需要去理解的一个知识点


DNS域名服务器

DNS(Domain Name System 域名系统)

互联网中识别主机的方式有两种:主机名和IP地址

人喜欢用名称记忆,通信链路中的路由却喜欢用定长、有层次结构地IP地址

DNS服务器作用将主机名映射到IP地址

  • DNS是一种由分层的DNS服务器实现的分布式数据库
  • DNS运行在UDP协议
  • DNS使用53号端口
    计算机网络面试题(十七):地址栏输入URL后发生了什么?

浏览器的查询一开始都会从本地DNS服务器开始,若本地DNS无目标IP地址,则会向根DNS服务器发送DNS查询请求

DNS查询方式:

  • 递归查询

根服务器无法告知本地DNS服务器下一步要访问哪个服务器,则使用递归查询

  • 迭代查询

若根服务器可以告知下一步访问哪个服务器,则会使用迭代查询


地址栏输入URL后发生了什么

  1. 首先,用户在浏览器的URL地址栏输入地址(即想访问的资源)
    计算机网络面试题(十七):地址栏输入URL后发生了什么?

  2. 然后,浏览器会根据你输入的URL地址,去查找域名是否被本地DNS服务器缓存,不同浏览器的本地DNS服务器设置不同

  • 若本地DNS服务器缓存了对应域名,则直接返回保存好的IP地址
  • 若本地DNS服务器没有缓存,浏览器就会发起系统调用,查询本机host文件是否配置了IP地址
  • 若本地也没有,则会向网络发起一个DNS查询
  1. 在返回IP地址后,浏览器会和目标服务器建立一个TCP连接,在建立连接之后,浏览器会向服务器发送HTTP-GET请求
  • 若只是请求一个简单页面,则直接返回
  • 若是一些较大的网站站点,往往会重定向(3开头状态码),浏览器获得重定向码之后,在响应报文中找到重定向地址,重新开始第一步访问