对比项 | HTTP | HTTPS |
---|---|---|
协议基础 | 明文传输,无加密 | 基于 SSL/TLS 加密传输 |
默认端口 | 80 | 443 |
安全性 | 数据可被窃听、篡改、劫持 | 防窃听、防篡改、身份认证 |
性能 | 无加密开销,速度更快 | 加密/解密消耗 CPU,速度略慢(但 HTTP/2 优化后差距缩小) |
SEO | 搜索引擎排名较低 | 谷歌等搜索引擎优先收录 HTTPS 网站 |
证书 | 无需证书 | 需 CA 颁发的数字证书(如 Let's Encrypt) |
HTTPS 如何实现加密?
HTTPS = HTTP + SSL/TLS,通过以下机制保障安全:
-
混合加密(Hybrid Encryption)
结合 对称加密 和 非对称加密 的优势 -
数字证书(Digital Certificate)
解决 “公钥可信度” 问题,防止中间人攻击:
证书内容:服务器公钥 + 域名 + 颁发机构(CA)签名。
3. SSL/TLS 握手过程(以 RSA 密钥交换为例)
加密通信:
后续数据传输使用对称密钥加密(如 AES)。
从输入URL到页面显示,整个过程发生了什么?(经典问题)
-
输入URL并解析
用户输入:在浏览器地址栏输入 https://www.example.com 并按下回车。 -
DNS域名解析
-
建立TCP连接(三次握手)
-
TLS握手(HTTPS加密通信)
-
发送HTTP请求
-
服务器处理请求并返回响应
-
浏览器解析并渲染页面
-
后续加载(异步请求)
关键优化点
减少DNS查询:使用DNS预解析 。
TCP复用:HTTP/2 多路复用减少握手开销。
减少重绘回流:避免频繁修改DOM样式。
CDN加速:静态资源分发到边缘节点。
分层描述:
“整个过程涉及 DNS解析 → TCP握手 → TLS加密 → HTTP请求 → 服务器处理 → 浏览器渲染。”
HTTP/2相比HTTP/1.1的改进?
多路复用、头部压缩、服务器推送。
如何优化页面加载速度?
减少请求数、CDN、缓存、代码拆分。