博客
关于我
瞎掰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实现组合模式(附完整源码)
    查看>>
    Objective-C实现绘制跳动的桃心(附完整源码)
    查看>>
    Objective-C实现给定一个 NxN 网格,找出单元格 [0, 0] 中的老鼠是否可以到达单元格 [N-1, N-1] 中的目标算法(附完整源码)
    查看>>
    Objective-C实现给定一个句子,返回出现次数最多的单词算法(附完整源码)
    查看>>
    Objective-C实现给定一个数字数组,返回最大乘积数组中的 3 个数字算法(附完整源码)
    查看>>
    Objective-C实现给定一个整数 n,将最小步数返回到 1算法(附完整源码)
    查看>>
    Objective-C实现给定一串字符,返回出现频率最高的字符算法(附完整源码)
    查看>>
    Objective-C实现给定两个数字 n 和 k,使 k 数字的所有唯一组合从 1 到 n 并按排序顺序算法(附完整源码)
    查看>>
    Objective-C实现给定两个长度相同的字符串s1和s2,如果s2是s1的乱序字符串则返回真,否则返回假算法(附完整源码)
    查看>>
    Objective-C实现给定分隔符加入字符串列表算法(附完整源码)
    查看>>
    Objective-C实现给某个文件或文件夹赋予特定访问权限(附完整源码)
    查看>>
    Objective-C实现维吉尼亚密码加解密算法(附完整源码)
    查看>>
    Objective-C实现维吉尼亚密码加解密算法(附完整源码)
    查看>>
    Objective-C实现缓冲区(附完整源码)
    查看>>
    Objective-C实现缺陷的检测和识别加上自动矩形框(附完整源码)
    查看>>
    Objective-C实现网络寻路(附完整源码)
    查看>>
    Objective-C实现罗马数字转十进制算法(附完整源码)
    查看>>
    Objective-C实现置换密码加解密算法(附完整源码)
    查看>>
    Objective-C实现置换密码加解密算法(附完整源码)
    查看>>
    Objective-C实现翻转图像augmentation算法(附完整源码)
    查看>>