HTTP和HTTPS的区别?HTTPS是如何实现加密的?
对比项
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、缓存、代码拆分。