文章概述:浏览器使用HTTP/HTTPS协议,向服务端请求页面的过程。
浏览器做了什么?
对于浏览器实现者来说,他们做的事情就是把一个URL变成一个屏幕上显示的网页。其过程如下:
- 浏览器首先使用HTTP协议或者HTTPS协议,向服务端请求页面
- 将请求回来的HTML代码经过解析,构建DOM树
- 计算DOM树上的CSS属性
- 最后根据CSS属性对元素逐个进行渲染,得到内存中的位图
- 一个可选的步骤是对位图进行合成,这会极大地增加后续绘制的速度
- 合成之后,再绘制到界面上
HTTP格式
HTTPS
HTTPS是使用了加密通道来传输HTTP的内容,但是HTTPS首先与服务器建立了一条TLS加密通道,TLS构建与TCP协议之上,它实际上是对传输的内容做一次加密,所以从传输内容上看,HTTP和HTTPS没有任何区别。HTTPS有2个作用:
- 确定请求的目标服务端身份
- 保证传输的数据不会被网络中间节点窃听或者篡改
HTTP 2
HTTP2是HTTP1.1的升级版,HTTP2最大的改进有2点:
- 支持服务端推送:能够在客户端发送第一个请求到服务端时,提前把一部分内容推送给客户端,放入缓存当中,这可以避免客户端请求顺序带来的并行度不高,从而导致性能问题。
- 支持 TCP连接复用:使用同一个TCP连接来传输多个HTTP请求,避免了TCP连接建立时的三次握手开销,和初建TCP连接时传输窗口小的问题