| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 输入 url 到页面渲染完成的过程 -> 正文阅读 |
|
[网络协议]输入 url 到页面渲染完成的过程 |
用户从输入 url 到页面渲染完成, 之间发生了什么? url 解析 输入 url , 会进行 url 的解析, 如果是 http 协议, 浏览器会新建一个网络请求线程去下载所需资源 DNS 解析: 将 host 字段转化为网络中具体的 IP 地址 (服务器在网络中的 " 门牌号") 查询缓存: 浏览器自身的 DNS 缓存 => 系统自身的 DNS 缓存 => 系统的 hosts 文件 => 本地域名服务器 => 根域名服务器 => COM 顶级域名服务器 => 权限域名服务器 通过 DNS 解析获取到目标服务器 IP 地址后, 建立网络连接进行资源的请求与响应
但在数据连接传输之前, 需要建立好客户端与服务端之间的连接 即 TCP 连接 三次握手, 四次挥手
建立 TCP 连接之后, 便可通过 HTTP 等协议进行前后端的通信
HTTP 在 1.0 时使用的是短连接, HTTP 操作后任务结束后会断开连接 1.1 之后, 默认使用长连接 请求头中有个字段 connection: keep-alive HTTP 2.0 之后, 一个 TCP 连接上可以请求多个资源 服务器可对客户端的一个请求发出多个响应(实现主动推送) ; HTTP 头部压缩, 减少体积 前后端交互中, 使用缓存可以提高性能 强缓存: 本地缓存未过期, 直接读取本地缓存 1.1 cache-control: max-age 协商缓存: 向服务器发起 http 请求 判断本地缓存是否发生修改, 未修改, 返回状态码 304 判断头部 if-none-match 与服务器的 etag 是否匹配 关键路径渲染 从服务器获取到所访问的页面文件后, 如何将文件内容渲染出来?
接下来, 将两个对象合并为渲染树 步骤: 遍历可见节点, 找到其对应规则, 计算具体位置和大小, 绘制为屏幕上实际像素
来自 田佳奇 - Web 前端性能优化 - 第 2 章 前端页面生命周期 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:40:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |