1

浏览器输入网址后发生了什么?

在浏览器输入网址,按下回车后,首先浏览器会做域名解析,获取目标主机的ip地址。

一、域名解析

主要有以下几个步骤:

  1. 浏览器搜索自身的DNS缓存,如果没找到,转2;

  2. 搜索操作系统自身DNS缓存,如果没找到,转3;

  3. 读取本地的hosts文件,查找有无域名对应解析,如果没找到,转4;

  4. 浏览器发起一个DNS的一个系统调用:向本地域名解析服务器(由宽带服务商提供),发起一个域名解析请求。

    • 运营商的DNS服务器首先查看自身缓有无对应条目(没有过期,则解析成功),如果不成功;

    • 宽带运营商代替浏览器发起一个迭代DNS解析的请求
      以www.imooc.com的IP地址为例:

DNS迭代解析
经过八个步骤,最终查询到域名的IP地址,并将其返回给浏览器;

二、浏览器获得域名对应的IP地址后,发起与服务器的TCP连接请求(完成“三次握手”);

TCP的通信连接需要经过三个过程:

  • 客户端向服务器发送一个建立连接请求

  • 服务器接収到连接请求后发送同意连接的信号会客户端

  • 客户端收到同意连接信号后,再次向服务器发送确认信号,至此,客户端与服务器完成连接建立

三、建立TCP连接后,由浏览器向服务器发送请求;

四、 服务器接收客户端的请求,根据路径参数,将经过后台处理的数据,发送回浏览器;

五、 浏览器获得完整的HTML页面代码,在解析、渲染页面时,其中的JS、CSS和图片等静态资源也是一个个HTTP请求,经过前面7个步骤获取;

六、 浏览器根据获取到的资源对页面进行最后的渲染,呈现给用户。


Kyxy
316 声望10 粉丝