浏览器输入一个网址,具体发生了什么?

113 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情


浏览器输入一个网址,具体发生了什么?

1.对URL进行DNS(域名系统)解析操作,根据DNS解析的结果查找服务器IP地址

2.通过IP与ARP(地址解析协议——根据IP获取物理地址),找到服务器,三次握手建立连接

3.浏览器生成HTTP报文,发送HTTP请求,等待服务器响应

4.服务器处理请求,并返回给浏览器

5.若HTTP使用短连接,则关闭TCP连接(长连接则保持连接)

6.浏览器根据收到的静态资源进行页面渲染

7.页面显示完成后,浏览器发送异步请求

8.浏览器关闭TCP连接(长连接)

DNS

DNS:基于UDP的应用层协议,功能是根据用户输入的域名,解析出该域名对应的IP地址,从而给客户端访问。

递归方式:

  • 客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会将请求发送给本地dns服务器

  • 本地域名服务器会在自己的区域里面查找,找到即根据此记录进行解析

  • 本地服务器没有找到客户机查询的信息,就会将此请求发送到根域名dns服务器

  • 根域名服务器查找对应的顶级域名服务器

  • 顶级域名服务器查找对应的权限域名服务器

  • 权限域名服务器查找到对应的IP地址,并将该地址返还给主机

递归与迭代相结合:

  • 客户机发出查询请求,在本地计算机缓存查找,若没有找到,就会递归查询将请求发送给本地DNS服务器

  • 本地域名服务器迭代查询根域名服务器,根域名服务器返回对应的顶级域名服务器地址

  • 本地域名服务器查询顶级域名服务器,顶级域名服务器返回对应的权限域名服务器

  • 本地域名服务器查询权限域名服务器,权限域名服务器返回相应的IP地址

  • 本地域名服务器将IP地址返回给本地主机进行解析

为了提高DNS查询效率,并减轻服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。