博客
关于我
瞎掰HTTP
阅读量:314 次
发布时间:2019-03-03

本文共 1012 字,大约阅读时间需要 3 分钟。

瞎掰HTTP

简单聊聊HTTP历程

HTTP(HyperText Transfer Protocol)是一种应用层协议,定义了客户端和服务端之间的请求-响应方式。它最初并未有一个正式的版本号,后来被人为划分为HTTP 0.9用于区别其后续版本。

HTTP 0.9

HTTP 0.9的特点:

  • 请求方式为GET
  • 响应简陋,仅包含文本内容
  • 示例:
    GET /hello.html

    响应:

    你好,世界!

HTTP 1.0

1996年,HTTP 1.0诞生,引入了请求和响应头、内容类型(Content-Type),并支持非纯文本文件传输。其主要缺陷是每次请求都需新建TCP连接,导致效率低下。

HTTP 1.1

1997年,HTTP 1.1正式标准化,主要改进:

  • TCP连接复用
  • 管线化技术
  • 响应分块(Transfer-Encoding)
  • 服务器推送
  • Host头支持多域名配置
  • 内容协商

管线化技术:

  • 客户端可同时发送多个请求,但服务器需按顺序响应
  • 浏览器默认关闭管线化

响应分块:

  • 使用Content-Length传输整包数据
  • Transfer-Encoding: chunked实现分块传输
  • 服务器发送多个数据块,最后以大小为0的块结束

HTTP 2.0

HTTP 2.0基于二进制协议,实现了同一连接内的多路复用,解除了HTTP 1.x的队头阻塞:

  • 消除了文本协议的限制
  • 带来二进制消息头压缩
  • 服务器推送机制
  • 多路复用允许并行下载

HTTP 3.0

尚未正式应用,基于QUIC协议:

  • 运用UDP传输
  • 支持多路复用、0-RTT、TLS加密等

从HTTP到HTTPS

HTTPS通过TLS加密HTTP通信。其加密机制结合对称加密和非对称加密:

  • 对称加密用于内容加密,需共享密钥
  • 非对称加密用于密钥协商

非对称加密的局限性

  • 公钥加密安全,但私钥解密受限

对称加密的挑战

  • 密钥分发问题,难以管理大量密钥

HTTPS加密方案

  • 客户端请求服务端证书
  • 通过非对称加密协商对称密钥
  • 使用对称加密进行通信
  • CA机构的作用

    CA(证书颁发机构)解决中间人问题:

    • 提供可信公钥
    • 绑定身份信息签字
    • 防止中间人伪造

    中间人问题

    中间人伪造公钥:

    • 客户端获取伪造公钥
    • 内容传输不安全
    • CA机构验证解决问题

    参考

    HTTP的发展历程从0.9到3.0,经历了从简单到复杂的演变。HTTPS通过TLS加密实现安全通信,结合CA机构解决中间人威胁,确保传输安全。

    转载地址:http://flxm.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现pascalTriangle帕斯卡三角形算法(附完整源码)
    查看>>
    Objective-C实现PascalTriangle帕斯卡三角算法 (附完整源码)
    查看>>
    Objective-C实现password generator复杂密码生成器算法(附完整源码)
    查看>>
    Objective-C实现patience sort耐心排序算法(附完整源码)
    查看>>
    Objective-C实现PCA(附完整源码)
    查看>>
    Objective-C实现perceptron算法(附完整源码)
    查看>>
    Objective-C实现perfect cube完全立方数算法(附完整源码)
    查看>>
    Objective-C实现perfect number完全数算法(附完整源码)
    查看>>
    Objective-C实现perfect square完全平方数算法(附完整源码)
    查看>>
    Objective-C实现permutate Without Repetitions无重复排列算法(附完整源码)
    查看>>
    Objective-C实现pigeon sort鸽巢算法(附完整源码)
    查看>>
    Objective-C实现PNG图片格式转换BMP图片格式(附完整源码)
    查看>>
    Objective-C实现pollard rho大数分解算法(附完整源码)
    查看>>
    Objective-C实现Polynomials多项式算法 (附完整源码)
    查看>>
    Objective-C实现pooling functions池化函数算法(附完整源码)
    查看>>
    Objective-C实现porta密码算法(附完整源码)
    查看>>
    Objective-C实现Pow Logarithmic幂函数与对数函数算法 (附完整源码)
    查看>>
    Objective-C实现power iteration幂迭代算法(附完整源码)
    查看>>
    Objective-C实现powLinear函数和powFaster函数算法 (附完整源码)
    查看>>
    Objective-C实现pow函数功能(附完整源码)
    查看>>