从输入URL到页面加载是怎么完成(下)
接下来封装包会从本地计算机出发,经过本地网络,再通过调制解调器把数字信号转换成模拟信号。在传输线路的另一端,另一个调制解调器把模拟信号转换回数字信号,交由下一网络节点进行处理,最终封包会到达目标服务器。
发送和接收的过程在TCP连接期间会发送很多次(三次握手):客户端将封包发送给服务端,并建立连接设置初始的序列号;服务端收到封包后做相应处理,并且向客户端表明自己接受到了第一个封包;客户端再次发送一个封包来确认这次连接。这就是建立连接三次握手的过程。
TLS握手
客户端发送相应消息给服务端,表明可用的加密算法以及压缩算法。
服务端返回给客户端一个消息,包含了TLS版本,以及自己使用的加密算法和压缩算法等。
客户端验证服务端发送的信息是否可用,如果可用,就生成一段加密的随机数返给服务端。
服务端对这段密文进行解密,并生成自己的主密钥。
接下来整个会话会进行加密,传输http的内容。
HTTP协议
浏览器向服务器发送请求头,请求头内容包括:请求数据方式,http版本号,域名等头部信息。接下来,服务器端返回一个响应码,表明这次请求的状态。浏览器会从自己的缓存中取出想要的内容,在解析完 HTML 之后,浏览器会重复上面的过程,直到HTML页面引入的所有资源(图片,CSS,JS等等)全部都获取完毕。
浏览器
当服务器提供了资源之后(HTML,CSS,JS,图片等),浏览器会执行下面的操作:
HTML解析。HTML解析器的主要工作是对HTML文档进行解析,解析出HTML的内容。
CSS解析。分析CSS文件内容以及属性值,将每个CSS文件都被解析成一个样式表对象。
页面渲染。通过一些列计算并呈现DOM树,过程就是测量-排版-绘制页面。在渲染过程中,对图形的渲染处理会使用图形处理器GPU。
后期渲染
渲染结束后,浏览器根据时间机制运行JavaScript代码(比如动画)或与用户交互。类似Flash和Java的插件也会运行,这些脚本也可能改变网页的内容和布局,并产生又一轮渲染与绘制。
以上就是网站页面从输入 URL 到页面加载的全部过程。
扫码访问手机页面