812 字
4 分钟
HTTP 学习笔记(一)
2021-04-27
无标签

起源#

蒂姆·伯纳斯

1989年发表论文, 提出HTTP协议的构想, 包括3个方面:

  1. HTTP(Hypertext Transfer Protocol), 超文本传输协议, 用于传输超文本

  2. HTML(Hypertext Markup Language), 超文本标记语言, 用于标记超文本

  3. URI(Uniform Resource Identifier), 统一资源标识符, 用于标识资源在互联网上的身份

HTTP 就此诞生, A brave new world!

发展#

从一篇论文开始, HTTP 主要经历了这几个历史阶段:

  1. HTTP/0.9

  2. HTTP/1.0

  3. HTTP/1.1

  4. HTTP/2

  5. HTTP/3

HTTP/0.9#

诞生于1991年, 作为初代标准, 给后来的 HTTP 标准的发展和完善奠定了基础. 这一时期的网络资源基本以文字为主, 网络传输速度也很低, (生产力决定生产关系), 此时的 HTTP 标准还比较原始.

特点#

  1. 纯文本格式, 结构简单, 只有 GET 方法(只能从服务器获取文档, 单向传输)

  2. 连接不具有可持续性, 服务器在响应请求后, 连接立即终止

HTTP/1.0#

初代标准诞生以降, 互联网已经发生了很多改变, 最主要的就是传输的数据种类更加丰富,数据量也更大. 而且, 初代的 HTTP 标准已经不能满足用户的需求, 于是, 在1996年, HTTP/1.1 标准正式发布. 这一标准对于初代的主要改进有:

  1. 增加了 POST、 HEAD 等方法

  2. 增加了响应状态码, 也就是常见的200, 404等, 用来标记状态

  3. 增加了 HTTP Header, 在 Header 中可以写入 HTTP 请求和响应的一些关键数据

  4. 传输的数据种类更多, 不局限于文本

HTTP/1.1#

HTTP/1.1 发布于1999年, 是对 HTTP 的又一次改进和升级, 并且从这一代标准开始, 各浏览器厂家纷纷遵守这一标准, 沿用至今. 如今互联网上的主流 HTTP 标准仍是这一代. 这一标准对于上一代的主要改进有:

  1. 增加了几个新的方法, 包括 PUT, DELETE 等

  2. 增加了缓存管理和控制

  3. 允许持久连接(keep-alive)

  4. 允许响应数据分块传输

从这一代开始, 之前连接不能持续的问题被解决, 从而可以让浏览器与服务器之间保存状态信息.

HTTP/2#

从这一代起, 你会发现 HTTP 协议没有小版本号了, 以后的 HTTP 协议都将依此形式发布.

自从 HTTP/1.1 发布以后, 互联网世界的资源以指数速度增长, Google 公司开发了 SPDY 标准, 优化上一代标准. 互联网标准化组织则以此为基础制定了新版本的 HTTP/2 协议, 并于2015年发布. 这一标准对于上一代的主要改进有:

  1. 以二进制形式传输数据, 取代了纯文本形式

  2. 可以同时发起多个请求

  3. 使用专用算法压缩头部, 减少了数据传输量

  4. 允许服务器主动向客户端推送数据

  5. 增强了安全性, 强制加密通信

目前 HTTP/2 的普及率仍然不高, 互联网仍以 HTTP/1.1 协议传输为主.

HTTP/3#

尚未进入 RFC 标准的 HTTP/3, 依旧是 Google 开发的. 至于此代标准如何, 只能等待之后见分晓.

HTTP 学习笔记(一)
https://blog.timeofmei.com/posts/httpnotes1/
作者
timeofmei
发布于
2021-04-27
许可协议
CC BY-NC-SA 4.0