大致流程
- 输入网址
- DNS解析
- 建立tcp连接
- 客户端发送HTTP请求
- 服务器处理请求
- 服务器响应请求
- 浏览器显示HTML
- 浏览器发送请求获取其他在HTML中的资源(图片,音频,视频,css, js....)
1. 浏览器渲染页面的全过程
- 解析HTML生成DOM树
- 解析CSS 生成 style rules
(脚本处理,当遇到script标签的时候,会立即解析脚本,停止解析文档,如果脚本是外部的会等待脚本下载完毕之后,在继续解析文档,但是现在可以在script标签上加defer/async,将该改变DOM/CSS的地方分别解析出来,追加到DOM Tree / Style Rules上) - 将二者关联生成render tree
- layout 根据render tree 计算每个节点的信息
- painting根据计算好的信息绘制整个页面
页面渲染优化
在改变文档颜色字体等视觉信息的时候会触发文档的重绘,而改变元素位置等DOM元素的几何变化会导致重排
a. html 文档结构层次尽量少,最好小于六层,
b. 脚本尽量后方
c. 在脚本中减少DOM操作
2. http和https区别
http是以明文的方式发送内容的,不提供 任何方式的数据加密 ,不适合传输一些敏感信息
https是在http的基础上加入了SSL/TSL ,依靠证书来验证服务器的身份,为浏览器和服务器之间的通信加密
https协议需要CA申请证书,http和https使用的是完全不同的连接方式,使用的端口也不一样,http是80,https是443
客户端使用HTTPS方式与web服务器通信的步骤
- 客户端使用HTTPS的URL访问web服务器,要求与web服务器建立SSL连接
- web服务器收到客户端请求后,将网站的证书(证书中包含公钥)传送一份到客户端
- 客户端的浏览器与web服务器开始协商SSL连接的安全等级,也就是信息的加密等级
- 建立会话密钥,然后利用网站的公钥开始将会话密钥加密,并传送给网站
- web服务器利用自己的私钥解密会话密钥
- web服务器利用会话密钥加密与客户端之间的通信
在交换密钥阶段使用公开密钥加密(非对称密钥加密)方式,之后建立通信交换保温阶段使用共享密钥加密(对称密钥加密)
https和http区别https://blog.csdn.net/qq_32998153/article/details/80022489
3. DNS(Domain Name System)
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
DNS查询两种方式:递归查询/迭代查询
[https://blog.csdn.net/wlk2064819994/article/details/79756669]
网友评论