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

HTTP 与 HTTPS 网络传输

文章目录

      • HTTP 与 HTTPS 网络传输
        • HTTP(HyperText Transfer Protocol)
          • HTTP 的工作原理
          • HTTP 的特点
        • HTTPS(HTTP Secure)
          • HTTPS 的工作原理
          • HTTPS 的特点
      • HTTP 和 HTTPS 的对比
      • HTTP 和 HTTPS 的传输过程对比
        • HTTP 传输过程
        • HTTPS 传输过程
      • HTTPS 使用的关键技术
      • 示例:HTTPS 数据传输流程

HTTP 与 HTTPS 网络传输

HTTP(HyperText Transfer Protocol)

HTTP 是一种无状态的、基于请求-响应模式的应用层协议,用于在客户端(浏览器)和服务器之间传输数据。

HTTP 的工作原理
  1. 请求

    • 客户端(如浏览器)向服务器发送 HTTP 请求,包含请求方法(GET、POST 等)、URL、头部信息和可选的请求体。
    • 示例:
      GET /index.html HTTP/1.1
      Host: www.example.com
      
  2. 响应

    • 服务器处理请求并返回响应,包含状态码、响应头部和可选的响应体。
    • 示例:
      HTTP/1.1 200 OK
      Content-Type: text/html
      Content-Length: 1234
      
      <html>...</html>
      
  3. 无状态性

    • HTTP 不记录请求之间的状态,除非通过 Cookie、Session 等机制扩展。
HTTP 的特点
  • 优点:简单、易用、广泛支持。
  • 缺点
    • 数据明文传输,缺乏加密,容易被窃听。
    • 数据完整性无法保证,容易被篡改。
    • 不验证通信双方身份,易受中间人攻击。

HTTPS(HTTP Secure)

HTTPS 是 HTTP 的安全版本,利用 SSL/TLS(Secure Socket Layer/Transport Layer Security)协议对数据进行加密、认证和完整性保护。

HTTPS 的工作原理
  1. 建立 TCP 连接

    • HTTPS 先与服务器建立一个 TCP 连接(三次握手)。
  2. TLS/SSL 握手

    • 客户端与服务器通过 TLS/SSL 协议建立安全连接,包括身份认证、密钥交换和会话密钥生成。
    • 主要步骤:
      1. 客户端发起握手
        • 客户端发送支持的加密算法列表和随机数。
      2. 服务器响应
        • 服务器选择加密算法并返回数字证书(包含服务器公钥和身份信息)。
      3. 验证证书
        • 客户端验证服务器证书的真实性(检查证书是否由可信的 CA 签发,是否过期等)。
      4. 密钥协商
        • 客户端生成一个随机数,用服务器的公钥加密后发送给服务器。
        • 服务器用私钥解密后,与客户端协商生成对称密钥(会话密钥)。
      5. 加密通信开始
        • 客户端与服务器使用协商好的会话密钥加密后续数据。
  3. 加密 HTTP 数据传输

    • 在 TLS 加密隧道内传输 HTTP 数据,请求和响应的内容都经过加密,防止窃听和篡改。
HTTPS 的特点
  • 优点
    1. 数据加密:所有数据传输都是加密的,防止被窃听。
    2. 身份验证:通过证书验证服务器身份,防止中间人攻击。
    3. 数据完整性:防止数据被篡改。
  • 缺点
    1. 配置复杂:需要购买和配置 SSL 证书。
    2. 性能开销:加解密过程增加了 CPU 和网络资源消耗。

HTTP 和 HTTPS 的对比

特性HTTPHTTPS
安全性数据明文传输,易被窃听、篡改数据加密传输,确保机密性和完整性
身份验证无身份验证,易受中间人攻击使用数字证书验证服务器身份
加密机制无加密基于 SSL/TLS 加密
端口默认使用端口 80默认使用端口 443
性能开销小加解密增加了性能开销

HTTP 和 HTTPS 的传输过程对比

HTTP 传输过程
  1. 客户端向服务器发起 HTTP 请求。
  2. 服务器处理请求并返回 HTTP 响应。
  3. 数据以明文方式传输。
HTTPS 传输过程
  1. 客户端与服务器建立 TCP 连接。
  2. 通过 TLS/SSL 协议进行握手,建立加密通道。
  3. 客户端发起加密的 HTTP 请求。
  4. 服务器返回加密的 HTTP 响应。

HTTPS 使用的关键技术

  1. 对称加密

    • 用于加密数据传输,客户端和服务器共享同一密钥。
    • 常用算法:AES、DES。
  2. 非对称加密

    • 用于密钥交换,使用公钥加密和私钥解密。
    • 常用算法:RSA、ECDSA。
  3. 数字签名

    • 用于验证数据和证书的完整性。
    • 服务器通过私钥对数据签名,客户端用公钥验证签名。
  4. 数字证书

    • 由 CA(证书颁发机构)签发,用于证明服务器的身份。

示例:HTTPS 数据传输流程

  1. 用户访问 https://example.com
  2. 客户端与服务器进行 TLS 握手,验证服务器证书。
  3. 握手成功后,双方生成对称密钥。
  4. 客户端用对称密钥加密请求发送给服务器。
  5. 服务器用对称密钥解密并处理请求,返回加密响应。

通过 HTTPS,数据传输更加安全,适合敏感信息(如密码、支付信息)保护的场景。


http://www.kler.cn/a/488299.html

相关文章:

  • Erlang语言的网络编程
  • 【C++】揭开C++类与对象的神秘面纱(首卷)(类的基础操作详解、实例化艺术及this指针的深究)
  • 单片机软件定时器V4.0
  • Windows 系统中的任务管理器是什么,打开快捷键是什么?
  • Linux的proc目录与什么有关?【以及它里面的文件各自记录着什么信息】
  • Flink系统知识讲解之:如何识别反压的源头
  • Linux -- 初步了解 TCP 编程
  • ubuntu 20.04 安装 5.4 内核
  • CClinkIEfield Basic转Modbus TCP网关模块连接三菱FX5U PLC
  • 关于物联网的基础知识(四)——国内有代表性的物联网平台都有哪些?
  • xml-dota-yolo数据集格式转换
  • 【FPGA】时序约束与分析
  • 部署langchain服务
  • 使用 FastAPI 和 Async Python 打造高性能 API
  • 超大规模分类(三):KNN softmax
  • cJson——序列化格式json和protobuf对比
  • 单元测试MockitoExtension和SpringExtension
  • poi处理多选框进行勾选操作下载word以及多word文件压缩
  • Cognitive architecture 又是个什么东东?
  • 【Rust自学】11.7. 按测试的名称运行测试
  • 记录一个移动端表格布局,就是一行标题,下面一列是对应的数据,一条一条的数据,还有点击数据进入详情的图标,还可以给一列加input输入框,还可以一对多
  • dubbo3 负载均衡
  • js迭代器模式
  • python+camelot库:提取pdf中的表格数据
  • 工厂人员定位管理系统方案(二)人员精确定位系统架构设计,适用于工厂智能管理
  • 《零基础Go语言算法实战》【题目 2-1】使用一个函数比较两个整数