博客
关于我
瞎掰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/

    你可能感兴趣的文章
    python 日历小部件 - 返回用户选择的日期
    查看>>
    Python 日志管理封装
    查看>>
    python 时间函数小总结
    查看>>
    Python 是否优化尾递归?
    查看>>
    Python 更新set
    查看>>
    Python 最强 IDE 详细使用指南!
    查看>>
    Python 有一个不可变的列表吗?
    查看>>
    Python 机器学习入门之 pandas 的使用
    查看>>
    Python 机器学习实战
    查看>>
    python 杀死子进程_subprocess.popen.kill杀死所有子进程
    查看>>
    Python 条件语句与循环结构详解
    查看>>
    Python 条件运算符解决方法如何工作?
    查看>>
    python 枚举类型
    查看>>
    Python 查询 Mongodb数据库
    查看>>
    python 查询Neo4j多节点的多层关系
    查看>>
    python多处理参数:深拷贝?
    查看>>
    Python多处理使用队列写入同一个文件
    查看>>
    Python多处理.Process:从局部变量开始
    查看>>
    Python多处理-进程数
    查看>>
    python多个定时器_python单线程实现多个定时器示例
    查看>>