从输入 URL 到页面加载的全过程

从输入 URL 到页面加载的全过程

  • 缓存解析
  • DNS解析
  • TCP连接
  • 浏览器发送HTTP请求
  • 服务器处理请求并返回HTTP报文
  • 浏览器解析渲染页面
  • TCP断开连接

具体过程

缓存解析
  • 先去缓存里面找资源,如果缓存里面有资源直接在缓存里面拿就好
  • 缓存资源寻找路线:浏览器缓存(离线缓存、内存缓存、硬盘缓存)-> 各种中间代理服务器的缓存(如:CDN缓存)
DNS解析
  • DNS(Domain Name System, 域名系统),是域名和IP地址相互映射的一个分布式数据库

  • DNS 解析就是从域名映射到IP地址的过程

  • 如果有些网站已经访问过了,下次访问时浏览器会依次从浏览器缓存、系统缓存、路由器缓存、ISP缓存、根域名服务器、顶级域名服务器、主域名服务器里面找IP地址,所以下次访问速度更快

  • 有些HTTP网页会自动做DNS预解析,就是提前解析之后可能会用到的域名,并将解析结果缓存到系统缓存中,缩短DNS解析时间,提高网站的访问速度(<meta><link>标签进行控制)

  • 预解析分类

    • 隐式 DNS 预解析:对页面中存在异域的链接或资源进行预加载
      (1)HTTP 网页
      会自动预解析<img>(外域图片)、<script>(外域JS代码)、<link>(外域CSS代码、HTML代码)、<a>(外域链接),如需关闭:<meta http-equiv="x-dns-prefetch-control" content="off">
      (2)HTTPS 网页
      不会自动预解析:处于安全考虑——防止窃听者根据 DNS 预解析推断显示在HTTPS页面中超链接的主机名,如需开启:<meta http-equiv="x-dns-prefetch-control" content="off">

      显式 DNS 预解析:对页面中没有出现的域进行预加载,一般是在 <link> 标签的 rel 属性中进行设置,在文档顶部的 <head>标签中加入以下内容:<link rel="dns-prefetch" href="//img.alicdn.com">

  • 预连接 rel="preconnect"
    与 DNS 预解析类似,Preconnect 不仅完成 DNS 预解析,同时还将进行 TCP 握手和建立传输层协议
    <link rel="preconnect" href="http://example.com">

  • 预获取 rel="prefetch"
    如果我们确定某个资源(图片/脚本文件/css文件)将来一定会被使用到,我们可以让浏览器预先请求该资源并放入浏览器缓存中。与 DNS 预解析不同,预获取真正请求并下载了资源,并储存在缓存中
    <l

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力不熬夜的小喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值