详细的聊一聊从输入一个url到页面展示都包含那些过程---知识点包含强缓存、协商缓存、缓存位置、DNS解析、F5强制刷新都做了什么、TCP三次连接、四次挥手过程、解析浏览器解析html的整个过程

本文详细解析了从输入URL到页面展示的整个流程,包括浏览器缓存机制(强缓存、协商缓存)、DNS解析、TCP三次握手与四次挥手、HTTP请求响应过程,以及HTML解析与页面显示。通过了解这些知识点,能深入理解网络请求的全貌。
摘要由CSDN通过智能技术生成

目录

输入url到页面展示经历了什么?

1、在浏览器地址栏输⼊URL

2、浏览器查看缓存,是否有缓存?

       强缓存

        缓存位置   

memory cache

disk cache

Service Worker

Push Cache

3、浏览器解析URL获取协议,主机,端⼝,path

4、浏览器组装⼀个HTTP(GET)请求报文

5、浏览器获取主机 ip 地址,(DNS解析)

6、解析出⽬标IP地址,浏览器与ip服务器建⽴TCP连接

7、TCP链接建⽴后发送HTTP请求

8、服务器接受请求并解析,将请求转发到服务程序

9、服务器检查是我们请求头是否携带了Etag、Last-Modified,然后进行校验,是否命中协商缓存

10、处理程序读取完整请求并准备HTTP响应,可能需要查询数据库等操作

11、浏览器接收HTTP响应,然后根据情况选择关闭TCP连接或者保留重⽤,关闭TCP连接

12、浏览器检查响应状态码

13、如果资源可缓存,进行缓存

14、对响应进行解码(例如gzip压缩)

15、根据资源类型决定如何处理(假设资源为HTML⽂档)

HTML构建DOM树

CSS构建CSSOM树(style tree)

两者结合,形成render tree

js解析如下

16、显示⻚⾯(HTML解析过程中会逐步显示⻚⾯)

F5到底做了什么?


输入url到页面展示经历了什么?

1、在浏览器地址栏输⼊URL

2、浏览器查看缓存,是否有缓存?

       强缓存

       强缓存可以通过设置两种 HTTP Header 实现:Expires 和 Cache-Control 。

Expires: Wed, 22 Oct 2018 08:41:00 GMT

        Expires :是 HTTP/1 的产物,表示资源会在 Wed, 22 Oct 2018 08:41:00 GMT 后过期,需要再次请求,并且 Expires 受限于本地时间,如果修改了本地时间,可能会造成缓存失效

Cache-control: max-age=30

  Cache-Control: 出现于 HTTP/1.1,优先级高于 Expires 。该属性值表示资源会在 30 秒后过期,需要再次请求。

 如果cache-control和expires都过期,则继续发送请求,直接去从缓存位置中获取数据

        缓存位置   

主要分为一下四种

  • Service Worker
  • Memory Cache
  • Disk Cache
  • Push Cache

memory cache

Memory Cache 也就是内存中的缓存

优点:
读取速度快

缺点:
一旦我们关闭 Tab 页面,内存中的缓存也就被释放了。

如何触发:
当我们访问过页面以后,再次刷新页面,可以发现很多数据都来自于内存缓存

在这里插入图片描述

disk cache

Disk Cache 也就是存储在硬盘中的缓存

优点:
缓存再硬盘中,容量大

缺点:
读取速度满

如何触发:
根据浏览器请求头

浏览器会把哪些文件丢进内存中?哪些丢进硬盘中?
关于这点,网上说法不一,不过以下观点比较靠得住:
对于大文件来说,大概率是不存储在内存中的,反之优先
当前系统内存使用率高的话,文件优先存储进硬盘

Service Worker

Service Worker 是运行在浏览器背后的独立线程,一般可以用来实现缓存功能。
传输协议必须为 HTTPS
Service Worker 的缓存与浏览器其他内建的缓存机制不同,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。
这个我们不常用

Push Cache

Push Cache(推送缓存)是 HTTP/2 中的内容,当以上三种缓存都没有命中时,它才会被使用。
它只在会话(Session)中存在,一旦会话结束就被释放,并且缓存时间也很短暂
这个我们不常用

3、浏览器解析URL获取协议,主机,端⼝,path

4、浏览器组装⼀个HTTP(GET)请求报文

我们从浏览器中输入的请求,都是Get请求,所以就去封装成一个get请求!

5、浏览器获取主机 ip 地址,(DNS解析)

1、浏览器缓存

2、查看本机Host文件

hosts文件是一个用于储存计算机网络中各节点信息的计算机文件。这个文件负责将主机域名映射到相应的IP地址。hosts文件通常用于补充或取代网络中DNS的功能。和DNS不同的是,计算机的用户可以直接对hosts文件进行控制。hosts文件的作用非常大,可以自由解析域名。

3、DNS缓存

4、DNS递归查询

6

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值