HTTP和HTTPS的区别?HTTPS是如何实现加密的?

对比项 HTTP HTTPS
协议基础 明文传输,无加密 基于 SSL/TLS 加密传输
默认端口 80 443
安全性 数据可被窃听、篡改、劫持 防窃听、防篡改、身份认证
性能 无加密开销,速度更快 加密/解密消耗 CPU,速度略慢(但 HTTP/2 优化后差距缩小)
SEO 搜索引擎排名较低 谷歌等搜索引擎优先收录 HTTPS 网站
证书 无需证书 需 CA 颁发的数字证书(如 Let's Encrypt)

HTTPS 如何实现加密?
HTTPS = HTTP + SSL/TLS,通过以下机制保障安全:

  1. 混合加密(Hybrid Encryption)
    结合 对称加密 和 非对称加密 的优势

  2. 数字证书(Digital Certificate)
    解决 “公钥可信度” 问题,防止中间人攻击:

证书内容:服务器公钥 + 域名 + 颁发机构(CA)签名。
3. SSL/TLS 握手过程(以 RSA 密钥交换为例)
加密通信:
后续数据传输使用对称密钥加密(如 AES)。

从输入URL到页面显示,整个过程发生了什么?(经典问题)

  1. 输入URL并解析
    用户输入:在浏览器地址栏输入 https://www.example.com 并按下回车。

  2. DNS域名解析

  3. 建立TCP连接(三次握手)

  4. TLS握手(HTTPS加密通信)

  5. 发送HTTP请求

  6. 服务器处理请求并返回响应

  7. 浏览器解析并渲染页面

  8. 后续加载(异步请求)

关键优化点
减少DNS查询:使用DNS预解析 。
TCP复用:HTTP/2 多路复用减少握手开销。
减少重绘回流:避免频繁修改DOM样式。
CDN加速:静态资源分发到边缘节点。
分层描述:
“整个过程涉及 DNS解析 → TCP握手 → TLS加密 → HTTP请求 → 服务器处理 → 浏览器渲染。”

HTTP/2相比HTTP/1.1的改进?
多路复用、头部压缩、服务器推送。
如何优化页面加载速度?
减少请求数、CDN、缓存、代码拆分。

posted @ 2025-08-06 23:00  灰灰奋斗录  阅读(40)  评论(0)    收藏  举报