从输入url到获得html的详细过程html
TCP是运输层的面向链接的可靠的运输协议,HTTP 是纯粹的文本协议,它是规定了使用 TCP 协议来传输文本格式的一个应用层协议。TCP 协议是一条双向的通信通道,HTTP 在 TCP 的基础上,规定了 Request-Response 的模式。而HTTPS 是使用加密通道来传输 HTTP 的内容。可是 HTTPS 首先与服务端创建一条 TLS 加密通道。TLS 构建于 TCP 协议之上,它其实是对传输的内容作一次加密,因此从传输内容上看,HTTPS 跟 HTTP 没有任何区别。json
HTTP格式:浏览器
request:缓存
request line服务器
headcookie
accept: text/html,application/xhtml+xml,application/xml;...(接收格式) accept-encoding: gzip, deflate, br (编码方式) accept-language: zh-CN,zh;q=0.9(语言类型) cache-control: max-age=0 (控制缓存时效性) cookie: 客户端存储的cookie字符串 upgrade-insecure-requests: 1 user-agent: (浏览器标识)
response:app
response line编码
head加密
connection: (链接类型,keep-alive表示复用链接) cache-control: public, max-age=86400 (缓存控制) content-length: 334 (内容长度) content-encoding: gzip(内容编码方式) content-type: text/html; charset=utf-8(内容类型) date: Wed, 11 Sep 2019 10:17:59 GMT (日期) server: Tengine (服务端软件类型) keep-alive:(保持链接不断时须要的信息) status: 200 vary: Accept-Encoding date: Tue, 10 Sep 2019 17:15:33 GMT(服务器日期) etag: 16151473764464638424 expires: Wed, 11 Sep 2019 17:15:33 GMT 过时时间,)
/* 1.获得服务器的响应内容,解析代码和构建 DOM 树,此时只有节点和属性,不包含任何的 样式信息。 2.接下来是 CSS 计算,把 CSS 规则应用到 DOM 树上,为 DOM 结构添加显示相关属性的 过程。 3.而后是排版。最基本的排版方案是正常流排版,它包含了顺次排布和折行等规则,这是一 个跟印刷排版相似的排版方案,也跟咱们平时书写文字的方式一致,因此咱们把它叫作正常流。 同时浏览器又能够支持元素和文字的混排,元素被定义为占据长方形的区域,还容许边框、边 距和留白,这个就是所谓的盒模型。 4.最后就是根据这些样式信息和大小信息,为每一个元素在内存中渲染它的图形,而且把它绘 制到对应的位置。位图操做部分,这包括了渲染、合成和绘制三个部分。渲染过程把元素变成 位图,合成把一部分位图变成合成层,最终的绘制过程把合成层显示到屏幕上。 */