起源
蒂姆·伯纳斯
1989年发表论文, 提出HTTP协议的构想, 包括3个方面:
HTTP(Hypertext Transfer Protocol), 超文本传输协议, 用于传输超文本
HTML(Hypertext Markup Language), 超文本标记语言, 用于标记超文本
URI(Uniform Resource Identifier), 统一资源标识符, 用于标识资源在互联网上的身份
HTTP 就此诞生, A brave new world!
发展
从一篇论文开始, HTTP 主要经历了这几个历史阶段:
HTTP/0.9
HTTP/1.0
HTTP/1.1
HTTP/2
HTTP/3
HTTP/0.9
诞生于1991年, 作为初代标准, 给后来的 HTTP 标准的发展和完善奠定了基础. 这一时期的网络资源基本以文字为主, 网络传输速度也很低, (生产力决定生产关系), 此时的 HTTP 标准还比较原始.
特点
纯文本格式, 结构简单, 只有 GET 方法(只能从服务器获取文档, 单向传输)
连接不具有可持续性, 服务器在响应请求后, 连接立即终止
HTTP/1.0
初代标准诞生以降, 互联网已经发生了很多改变, 最主要的就是传输的数据种类更加丰富,数据量也更大. 而且, 初代的 HTTP 标准已经不能满足用户的需求, 于是, 在1996年, HTTP/1.1 标准正式发布. 这一标准对于初代的主要改进有:
增加了 POST、 HEAD 等方法
增加了响应状态码, 也就是常见的200, 404等, 用来标记状态
增加了 HTTP Header, 在 Header 中可以写入 HTTP 请求和响应的一些关键数据
传输的数据种类更多, 不局限于文本
HTTP/1.1
HTTP/1.1 发布于1999年, 是对 HTTP 的又一次改进和升级, 并且从这一代标准开始, 各浏览器厂家纷纷遵守这一标准, 沿用至今. 如今互联网上的主流 HTTP 标准仍是这一代. 这一标准对于上一代的主要改进有:
增加了几个新的方法, 包括 PUT, DELETE 等
增加了缓存管理和控制
允许持久连接(keep-alive)
允许响应数据分块传输
从这一代开始, 之前连接不能持续的问题被解决, 从而可以让浏览器与服务器之间保存状态信息.
HTTP/2
从这一代起, 你会发现 HTTP 协议没有小版本号了, 以后的 HTTP 协议都将依此形式发布.
自从 HTTP/1.1 发布以后, 互联网世界的资源以指数速度增长, Google 公司开发了 SPDY 标准, 优化上一代标准. 互联网标准化组织则以此为基础制定了新版本的 HTTP/2 协议, 并于2015年发布. 这一标准对于上一代的主要改进有:
以二进制形式传输数据, 取代了纯文本形式
可以同时发起多个请求
使用专用算法压缩头部, 减少了数据传输量
允许服务器主动向客户端推送数据
增强了安全性, 强制加密通信
目前 HTTP/2 的普及率仍然不高, 互联网仍以 HTTP/1.1 协议传输为主.
HTTP/3
尚未进入 RFC 标准的 HTTP/3, 依旧是 Google 开发的. 至于此代标准如何, 只能等待之后见分晓.