zoukankan      html  css  js  c++  java
  • 浏览器学习笔记-04 第二次打开浏览器快

    第二次打开浏览器快

    浏览器流程

    浏览器中的 HTTP 请求从发起到结束一共经历了如下八个阶段:构建请求、查找缓存、准备 IP 和端口、等待 TCP 队列、建立 TCP 连接、发起 HTTP 请求、服务器处理请求、服务器返回请求和断开连接。

    快的原因

    1. dns缓存,在浏览器本地把对应的 IP 和域名关联起来
    2. 资源缓存

    当服务器返回 HTTP 响应头给浏览器时,浏览器是通过响应头中的 Cache-Control 字段来设置是否缓存该资源。通常,我们还需要为这个资源设置一个缓存过期时长,而这个时长是通过 Cache-Control 中的 Max-age 参数来设置的。

    这也就意味着,在该缓存资源还未过期的情况下, 如果再次请求该资源,会直接返回缓存中的资源给浏览器。

    但如果缓存过期了,浏览器则会继续发起网络请求,并且在 HTTP 请求头中带上:

    If-None-Match:"4f80f-13c-3a1xb12a"
    

    服务器收到请求头后,会根据 If-None-Match 的值来判断请求的资源是否有更新。

    1.如果没有更新,就返回 304 状态码,相当于服务器告诉浏览器:“这个缓存可以继续使用,这次就不重复发送数据给你了。

    2.如果资源有更新,服务器就直接返回最新资源给浏览器。

    简要来说,很多网站第二次访问能够秒开,是因为这些网站把很多资源都缓存在了本地,浏览器缓存直接使用本地副本来回应请求,而不会产生真实的网络请求,从而节省了时间。同时,DNS 数据也被浏览器缓存了,这又省去了 DNS 查询环节。

  • 相关阅读:
    Tinkoff Challenge
    Uva 12298 超级扑克2
    BZOJ 1031 字符加密
    HDU 4944 逆序数对
    51nod 1215 数组的宽度
    LA 3126 出租车
    LA 3415 保守的老师
    51nod 1275 连续子段的差异
    Uva 11419 我是SAM
    LA 4043 最优匹配
  • 原文地址:https://www.cnblogs.com/SLchuck/p/13691512.html
Copyright © 2011-2022 走看看