当前位置: 首页 > news >正文

深度剖析HTTP和HTTPS

对HTTP和HTTPS进行一次深度剖析。这不仅仅是“加密”与“未加密”的区别,更涉及到网络安全、性能、用户体验和现代Web架构的核心。


一、核心定义

  1. HTTP (HyperText Transfer Protocol)

    • 定义:应用层协议,是万维网数据通信的基础。它定义了客户端(浏览器)和服务器之间如何交换请求和响应。
    • 哲学:追求简单和高效。默认采用明文传输,是一个无状态协议(每个请求都是独立的,服务器不记忆之前的状态)。这种简单性是其早期得以快速普及的关键。
  2. HTTPS (HyperText Transfer Protocol Secure)

    • 定义:并非一个全新的协议,而是 HTTP over SSL/TLS。可以理解为在HTTP和TCP层之间加入了一个安全层(SSL/TLS)。
    • 哲学:在保持HTTP简单易用的基础上,解决其最大的安全问题。核心目标是保密性、完整性和身份认证

二、核心差异深度剖析:安全层(SSL/TLS)的工作机制

HTTPS的安全并非魔法,而是由SSL/TLS协议通过一系列精密步骤实现的。其核心过程是 “握手”(Handshake)

一次完整的TLS握手(以RSA密钥交换为例):

  1. TCP连接建立:客户端首先通过三次握手与服务器的443端口建立TCP连接。这是所有后续安全通信的基础。

  2. ClientHello:客户端向服务器发送消息,包含:

    • 支持的TLS版本(如TLS 1.2, 1.3)。
    • 客户端生成的随机数(Client Random)。
    • 支持的密码套件列表(Cipher Suites,如 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256),这定义了后续将使用的密钥交换算法、加密算法、散列算法等。
    • 支持的压缩方法。
  3. ServerHello:服务器回应客户端,内容包括:

    • 从客户端列表中选择的TLS版本和密码套件。
    • 服务器生成的随机数(Server Random)。
    • 服务器的数字证书(SSL Certificate)。这个证书由受信任的证书颁发机构(CA)签发,包含了服务器的公钥、域名、签发者等信息。这是身份认证的关键
  4. 证书验证

    • 客户端收到证书后,会进行一系列验证:
      • 检查证书是否过期、是否被吊销。
      • 用预置在操作系统或浏览器中的CA根证书的公钥,去验证服务器证书的数字签名是否有效。
      • 检查证书中绑定的域名是否与正在访问的域名一致。
    • 如果验证失败,浏览器会弹出严重警告。这一步确保了客户端是在与“真正的”服务器通信,而不是中间人。
  5. Premaster Secret生成与加密

    • 客户端生成另一个随机数,称为 Premaster Secret
    • 客户端用服务器证书中的公钥加密这个 Premaster Secret,发送给服务器。
  6. 会话密钥生成

    • 服务器用自己的私钥解密,得到 Premaster Secret
    • 此刻,客户端和服务器都拥有了三个随机数:Client Random, Server Random, Premaster Secret。双方使用相同的算法,独立计算出最终的主密钥(Master Secret)
    • 主密钥将进一步推导出用于后续对称加密的会话密钥(Session Keys),包括用于加密的密钥和用于完整性验证的MAC密钥。
  7. Finished:双方交换加密的“Finished”消息,验证之前的握手信息是否未被篡改,且密钥计算是否正确。

  8. 安全通信开始:握手完成。此后,双方使用生成的会话密钥,用对称加密算法(如AES)对所有HTTP请求和响应进行加密和解密传输。

为何混合使用非对称和对称加密?

  • 非对称加密(RSA/ECC):用于安全地交换对称加密的密钥。它安全但计算开销大,速度慢。
  • 对称加密(AES/ChaCha20):用于加密实际传输的数据。它计算开销小,速度快。 这种组合兼顾了安全性和性能。

三、对比总结:不仅仅是加密

特性HTTPHTTPS
协议层应用层应用层 + 安全层(TLS/SSL)
默认端口80443
传输方式明文传输,所有内容(URL、参数、头、密码)均可被窃听和篡改加密传输,内容无法被中间人读取或修改
安全性保密性(加密)、完整性(防篡改)、身份认证(防冒充)
性能无加密开销,理论速度更快有TLS握手和加密解密的CPU开销,但可通过优化(TLS 1.3、会话恢复)大幅降低
SEO谷歌等搜索引擎降权处理搜索引擎的排名信号,优先收录和排名
浏览器UI地址栏显示“不安全”标志地址栏显示锁形图标,建立用户信任
适用场景内网、信息无需保密的场景(已几乎淘汰)所有现代网站,特别是登录、支付、邮件等涉及隐私的场景

四、更深层次的探讨:现代Web的基石

  1. HTTP/2 and HTTP/3:这些现代HTTP协议的性能特性(如多路复用、服务器推送)几乎完全依赖于HTTPS。浏览器厂商(如Chrome)只对HTTPS连接启用HTTP/2。HTTPS成为了体验新一代Web技术的入场券

  2. Web新特性(Web API):许多强大的Web API(如Geolocation(地理位置)Service Workers(PWA基础)Push Notifications)都要求网站在HTTPS上下文中运行。这是出于对用户隐私和安全的最严格保护。

  3. 信任与品牌:地址栏上的“不安全”警告会极大地损害用户信任,导致转化率下降。HTTPS是现代专业网站的标配。

  4. 性能优化(TLS 1.3):TLS 1.3对握手过程进行了革命性优化,将传统的两次RTT(Round-Trip Time)握手减少到了1-RTT甚至0-RTT(在会话恢复时),极大地降低了HTTPS带来的延迟开销,使其性能无限接近HTTP。

http://www.xdnf.cn/news/1374301.html

相关文章:

  • .NetCore 接入 Nacos,实现配置中心和服务注册
  • 本地windows电脑部署html网页到互联网:html+node.js+ngrok/natapp
  • oracle 表空间扩容(增加新的数据文件)
  • 使用appium对安卓(使用夜神模拟器)运行自动化测试
  • STM32八大模式
  • 基于单片机空调温度控制测温ds18b20系统Proteus仿真(含全部资料)
  • 人机交互如何变革科普展示?哪些技术正成吸睛焦点?
  • 初春养生指南模板页
  • Rust 登堂 之 迭代器Iterator(三)
  • el-carousel在新增或者删除el-carousel-item时默认跳到第一页的原因和解决
  • betaflight configurator 如何正确烧写飞控
  • 基于muduo库的图床云共享存储项目(二)
  • Linux 云服务器内存不足如何优化
  • 【RAG】使用llamaindex进行RAG开发
  • 6 种无需 iTunes 将照片从 iPhone 传输到电脑
  • TDengine IPv6 支持用户手册
  • “java简单吗?”Java的“简单”与PHP的挑战:编程语言哲学-优雅草卓伊凡
  • KDMS V4 重磅升级,智能迁移赋能国产化替代!
  • android证书相关
  • 像WPS Office 一样处理pdf页面尺寸
  • AI 解决生活小事 2——用 AI 做一回新闻播客
  • 使用人工智能写一个websocket聊天页面
  • PDF补丁丁:开源多年,完全免费的多功能 PDF 工具箱
  • Agno Agent​​
  • 如何借助文档控件 TX Text Control 轻松优化 PDF 文件大小?
  • 计算机视觉(三):opencv环境搭建和图片显示
  • 主键索引和普通索引的区别
  • 基于 Qt 实现的动态流程图画板框架设计与实现
  • 在Windows系统上升级Node.js和npm
  • FastAPI + SQLModel 从 0 搭到完整 CRUD