2019年养成记录笔记的习惯,好好学习前端知识
输入URL
1、URL:协议名、域名、端口号(eg: http://www.baidu.com, http默认的端口号80,https默认端口号443,默认端口号可隐藏)
2、协议名:HTTP/HTTPS/FTP/FILE等
查看是否存在缓存
减少网络传输,多利用强缓存,消灭304,占用部分内存
1、强制缓存:判断HTTP首部字段:cahe-control、Expires
Expires:保存的服务器时间,浏览器检查本地时间与保存的服务器时间对比是否过期,可能存在服务器时间与本地时间不一致;
cahe-control:保存一个时间戳(max-age=10000),缓存10000s后过期
2、协商缓存:HTTP的last-modified、Etag字段判断,存在http损耗
last-modified:服务器返回的资源更新时间,再次请求进行对比
Etag:资源标识,资源更新标识改变
域名解析:将域名还原为IP地址
1、浏览器查找本地DNS解析器缓存
2、浏览器检查系统hosts文件是否有IP地址关系(可手动修改)
3、DNS服务器查询
TCP链接:三次握手
1、客户端发送SYN=j到服务器,等待服务器确认,SYN_SENT状态
2、服务器确认SYN,发送SYN+ACK(syn=k,ack=j+1)到客户端,SYN_RECV状态
3、客户端收到SYN+ACK,向服务器发送ACK=k+1,TCP连接成功,客户端、服务器ESTABLISHED状态
注:(SYN:同步序列编号 ACK:确认字符)
浏览器发送HTTP请求:请求行、请求头、请求数据
1:请求行:请求方法(options 、head 、get 、post、put、delete、trace) URL 协议版本
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
服务器返回:状态码、响应头、数据(html、js、css、img等)
断开TCP 连接(四次挥手)
浏览器渲染页面
1、解析HTML、css,构建DOM、CSSOM树
2、DOM+CSSOM==》构建render树,计算节点位置,render不会呈现display=none元素
3、布局render树(Layout)==》绘制render树(Paint)==》组合图层(Composite)
参考网上给的页面渲染图如下
