浏览器中输入URL并回车后发生的事情

一、解析URL

URL(Universal Resource Locator):统一资源定位符,也就是我们平时说的网址。

举个栗子来说明:http://www.tomcat.com:8080/shop/index.html?id=5&name=book&page=1#tab1

URL由以下几个部分组成,以上面的url为例:

  1. 传输协议:http

  2. 服务器:www

  3. 域名:tomcat.com

  4. 端口:8080,如果为80端口会默认不显示

  5. 虚拟目录:shop

  6. 资源文件名:index.html

  7. 参数:id=5&name=book,多个参数用&拼接

  8. 锚:tab1,锚的作用定位页面的访问的锚点位置,这个链接打开,滚动条会转到以下html标签的位置

    <a name="tab1"></a>
    

二、DNS解析(域名解析)

DNS实际上是一个域名与IP对应的数据库,DNS解析主要是为了获取到域名对应的IP,用于下一步的连接建立

DNS的解析会按照以下顺序尝试获取IP,任意一步找到直接返回IP:

  1. 查询浏览器缓存,浏览器会对最近访问的地址的DNS进行缓存,例如chrome对每个域名会默认缓存60s
  2. 检查系统缓存,也就是hosts文件中配置的域名与IP的对应关系
  3. 获取路由器的DNS缓存
  4. 查询ISP服务商DNS缓存,即本地服务器缓存
  5. 最后手段:递归查询,以 根域名服务器 --> 顶级域名服务器 --> 极限域名服务器 的顺序搜索对应域名的IP

三、浏览器与网站建立连接-三次握手

根据上一步获取到的IP地址定位到目标主机,开始于其建立TCP连接,也就是三次握手建立连接:

  1. 第1次握手:客户端向服务器端发送请求(SYN=1)等待服务器确认;
  2. 第2次握手:服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);
  3. 第3次握手:客户端收到服务器的回复指令并返回确认(ACK=1)。

四、发送请求与数据传输

发送一个GET请求,获取资源文件(HTML以及对应的MIME)。

对一个页面的第一次访问,浏览器中因为没有这个网站的cookie信息,请求头中会多出一个Set-Cookie

后续的访问该页面就会带上这个Cookie信息。
在这里插入图片描述

五、浏览器页面渲染

最后一步,也就是通过上一步从服务器拿到的资源文件,将页面渲染出来。

通过MIME类型,浏览器知道要用页面渲染引擎来处理HTML文件,整个渲染过程都由浏览器来处理,主要分为以下步骤:

  1. 解析资源文件(html)的源代码,构建出一个DOM树
  2. 解析CSS,形成css对象模型CSSOM,其中非法的css会直接被忽略掉
  3. 利用DOM和CSSOM构建一个渲染树
  4. 根据渲染树直接把页面绘制到浏览器窗口中
发布了19 篇原创文章 · 获赞 2 · 访问量 2446

猜你喜欢

转载自blog.csdn.net/Azhuzhu_chaste/article/details/105150326