常见问题
浏览器输入一个URL到页面显示的过程
- URL解析
- 判断输入的内容是否是一个合法的URL(协议+域名+端口+路径+查询字符串+锚点链接)。
- 判断输入的URL是否完整,如果不完整,浏览器可能会对域进行猜测,智能补全前缀或者后缀。
- 使用用户设置的搜索引擎进行搜索。
- DNS解析
- 浏览器不能直接通过域名找到对应的服务器IP地址,所以需要进行DNS解析,查询对应的服务器IP。
- 浏览器DNS缓存=>系统DNS缓存=>本地的hosts文件=>本地域名服务器=>根域名服务器=>顶级域名服务器=>权限域名服务器=>保存结果到缓存。
- 没有找到对应IP的话显示异常页面,提示无法处理此请求。
- 建立TCP连接(三次握手)
- 发送HTTP/HTTPS请求
- 服务器响应请求
- 浏览器解析页面
- 首先解析收到的HTML文档,根据文档定义构建DOM树(由DOM元素及属性节点组成)。
- 解析CSS,生成CSSOM树。
- 将 DOM树和CSSOM树结合,生成渲染树(Render Tree)。
- 根据渲染树来进行布局,得到各个节点在页面上的大小和位置(回流)。
- 进入绘制阶段,遍历渲染树并调用渲染对象的paint方法,绘制元素像素信息(重绘)。
- 浏览器将各图层的信息发送给GPU,显示在页面上。
- HTTP请求后,断开TCP连接(四次挥手)
HTTP VS HTTPS
对比项 | HTTP | HTTPS |
---|---|---|
安全性 | 明文传输,存在安全风险 | 加入了SSL/TLS加密层,数据传输更安全 |
默认端口 | 80 | 443 |
CA证书 | 不需要 | 需要 |