从浏览器地址栏输入url到显示页面的步骤

    1. 输入url,并点击搜索
    1. 从浏览器获取缓存(从浏览器http的header中读取,缓解服务器压力,提高页面加载效率)
    • 灰色的200代表是获取的浏览器缓存的数据,黑色的200是后端返回的数据
    • 协商缓存(优先级高)
      • 如果缓存有效(HTTP头部的expires【存过期时间,会存在浏览器和服务端时间有间隔的问题】和cache-control【存有效时间】(优先级高)),则直接将缓存中的数据显示在页面上
      • 如果缓存过期,从header中找到对应的参数,携带到请求中发送给服务器,服务器根据对应的参数,判断对应的资源是否更新,如果更新了就返回200状态码和对应的数据;未更新就返回304状态码(更新缓存过期时间并使用对应的缓存)
    • 强制缓存
      • 如果存在强制缓存,将其渲染在页面上
    • 如果缓存在硬盘内存(localStorage),浏览器关闭后,再次打开仍然存在,如果在内存缓存(sessionStorage),浏览器关闭后,数据被销毁
    • 如果没有缓存或者缓存过期,则进行下一步
    1. 解析URL获取协议,域名和端口号
    1. 组装http请求报文
    1. 通过DNS域名解析获取IP
    1. 建立TCP连接
    1. 发送http请求
    1. 通过TCP连接接受后端发送来的数据
    1. 解析响应报文
    1. 生成虚拟DOM
    • 可以加快页面更改速度,只需要用diff算法对比新旧虚拟DOM的变化,更改发生变化的页面元素
    • 缺点:占内存,页面越复杂越占内存
    1. 初始化响应数据
    1. 根据HTTP生成DOM树,CSS生成CSSOM树
    1. 渲染可见元素(不可见:<script>标签、<meta>【用于指定网页的描述,关键词】标签,设置为display:none或其他不可见的元素)
    1. 根据CSS规则渲染相应元素
    1. 解析js
    1. 显示页面
    • 生命周期钩子触发
    • 浏览器渲染
相关推荐
lijun_xiao20092 小时前
前端最新Vue2+Vue3基础入门到实战项目全套教程
前端
90后的晨仔2 小时前
Pinia 状态管理原理与实战全解析
前端·vue.js
杰克尼2 小时前
JavaWeb_p165部门管理
java·开发语言·前端
90后的晨仔2 小时前
Vue3 状态管理完全指南:从响应式 API 到 Pinia
前端·vue.js
90后的晨仔2 小时前
Vue 内置组件全解析:提升开发效率的五大神器
前端·vue.js
我胡为喜呀2 小时前
Vue3 中的 watch 和 watchEffect:如何优雅地监听数据变化
前端·javascript·vue.js
我登哥MVP3 小时前
Ajax 详解
java·前端·ajax·javaweb
UpYoung!3 小时前
技术贴!【谷歌浏览器】实用工具推荐之谷歌浏览器(Google Chrome)离线纯净版完全安装指南:告别广告与捆绑骚扰
chrome·运维开发·谷歌浏览器·浏览器·谷歌·实用工具·办公学习神器
非凡ghost3 小时前
Typora(跨平台MarkDown编辑器) v1.12.2 中文绿色版
前端·windows·智能手机·编辑器·软件需求
馨谙4 小时前
/dev/null 是什么,有什么用途?
前端·chrome