透视 HTTP 协议
罗剑锋(Chrono)
前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者
63942 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
开篇词 (1讲)
透视 HTTP 协议
15
15
1.0x
00:00/00:00
登录|注册

01 | 时势与英雄:HTTP的前世今生

HTTP
HTML
URI
理解HTTP的方式
推动HTTP发展的原动力
HTTP发展历程
HTTP/3标准化
Google推动QUIC协议
HTTP/2发布
Google推动变革
爆发式增长
主要变更点
HTTP/1.1发布
浏览器大战
HTTP/1.0发布
新技术发展
NCSA开发Mosaic
限制功能
结构简单
蒂姆·伯纳斯-李发表论文
TCP/IP协议发明
ARPA网建立
课下作业
小结
HTTP/3
HTTP/2
HTTP/1.1
HTTP/1.0
HTTP/0.9
创世纪
史前时期
HTTP的前世今生

该思维导图由 AI 生成,仅供参考

HTTP 协议在我们的生活中随处可见,打开手机或者电脑,只要你上网,不论是用 iPhone、Android、Windows 还是 Mac,不论是用浏览器还是 App,不论是看新闻、短视频还是听音乐、玩游戏,后面总会有 HTTP 在默默为你服务。
据 NetCraft 公司统计,目前全球至少有 16 亿个网站、2 亿多个独立域名,而这个庞大网络世界的底层运转机制就是 HTTP。
那么,在享受如此便捷舒适的网络生活时,你有没有想过,HTTP 协议是怎么来的?它最开始是什么样子的?又是如何一步一步发展到今天,几乎“统治”了整个互联网世界的呢?
常言道:“时势造英雄,英雄亦造时势”。
今天我就和你来聊一聊 HTTP 的发展历程,看看它的成长轨迹,看看历史上有哪些事件推动了它的前进,它又促进了哪些技术的产生,一起来见证“英雄之旅”。
在这个过程中,你也能够顺便了解一下 HTTP 的“历史局限性”,明白 HTTP 为什么会设计成现在这个样子。

史前时期

20 世纪 60 年代,美国国防部高等研究计划署(ARPA)建立了 ARPA 网,它有四个分布在各地的节点,被认为是如今互联网的“始祖”。
然后在 70 年代,基于对 ARPA 网的实践和思考,研究人员发明出了著名的 TCP/IP 协议。由于具有良好的分层结构和稳定的性能,TCP/IP 协议迅速战胜其他竞争对手流行起来,并在 80 年代中期进入了 UNIX 系统内核,促使更多的计算机接入了互联网。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HTTP协议作为互联网世界的基础,承载着我们日常网络生活的方方面面。从其诞生到不断演进,HTTP经历了多个版本的发展,每一次变革都推动着互联网的进步。文章从HTTP的史前时期开始,介绍了TCP/IP协议的诞生和HTTP的初始构想,随后详细描述了HTTP/0.9、HTTP/1.0和HTTP/1.1的发展历程。HTTP/1.1作为一个“正式的标准”,对HTTP协议进行了实质性的改进和完善,为互联网的快速发展提供了坚实的技术支持。 随着互联网的爆发式增长,HTTP/1.1标准出现了一些问题,导致人们发明各种优化手段来缓解这些问题。Google推出了新的SPDY协议,并在Chrome里应用于自家的服务器,从实际的用户方来“倒逼”HTTP协议的变革,最终在2015年发布了HTTP/2。HTTP/2在性能改善方面做了很大努力,主要特点包括二进制协议、多个请求发起、专用算法压缩头部、服务器主动推送数据以及增强安全性。 然而,Google又推出了QUIC协议,继续在Chrome和自家服务器里试验着“玩”,最终在2018年提议将“HTTP over QUIC”更名为“HTTP/3”并获得批准。HTTP/3正式进入了标准化制订阶段,也许两三年后就会正式发布,到时候我们很可能会跳过HTTP/2直接进入HTTP/3。 通过对HTTP协议发展历程的梳理,展现了HTTP作为技术英雄的成长轨迹,以及其对互联网世界的深远影响。HTTP的发展史跨越了三十年的历史长河,从HTTP/0.9到HTTP/3,每个版本都在不断完善和改进,推动着互联网的快速发展。HTTP协议的发展史为我们呈现了一个技术的进步与演变的过程,也为未来的互联网发展指明了方向。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《透视 HTTP 协议》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(152)

  • 最新
  • 精选
  • 不靠谱~
    用户需求推动技术发展

    作者回复: Great。

    2019-05-29
    92
  • 我叫不知道
    1.协议标准不同于原理,原理是相对稳定的,而标准则需要与时俱进,随着业务和技术发展中出现的新问题一起变化。在实际商业应用、竞争和实践中反复打磨,让协议标准适应不断发展变化的实际业务问题,而不是让日渐庞大复杂的业务去适应受限于特定时空因素的标准。 标准的诞生和发展一方面是基于具体业务需要和技术发展,另一方面是为了统一游戏规则,让各厂商的软硬件产品可以方便地“互联”,降低“沟通”和“翻译”的成本,提高网络互联的开放性。 2.http对厂商和技术人员来说,某种意义上,是一种技术语言,便于通过软硬件相互沟通;对用户来说……编不下去了 个人的一点拙见,还请大佬点评指正~

    作者回复: 写的很好,go on。

    2019-05-29
    2
    59
  • 汤小高
    超文本和文本有什么区别吗

    作者回复: 超文本有超链接,是网状结构,文本是线性结构。

    2019-05-29
    12
    45
  • Smallfly
    老师文中说,HTTP2.0 的新特点:“二进制协议,不再是纯文本”。 那像 HTTP/1.1 中的 application/octet-stream 和 multipart/form-data 也属于本文格式吗?

    作者回复: 是的,只要是HTTP/1.1,就都是文本格式,虽然里面的数据可能是二进制,但分隔符还是文本,这些都会在“进阶篇”里讲。

    2019-05-29
    2
    42
  • codewu
    老师提的问题很好,我之前都没考虑过~ 比如, ftp、telnet使用前必须输入用户名和密码,更偏向于一对一的使用,对用户来说不够开放。 而http设计之初就是对所有用户开放,而且还统一了访问方式,使用门槛很低,就会有很多人用。至于后续各种优化和功能的添加,那都是顺其自然的事了。 所以总的来说,是http对用户的开放性,使得用户推动其蓬勃发展。

    作者回复: 真理越辩越明,欢迎多讨论发言。

    2019-05-30
    31
  • Joker
    从历史的进程来看,就是互联网的用户推动协议的发展的。刚刚开始只有文本,都只是文字;后来有了超文本,不仅仅是文字;后来嫌弃速度慢,有了持久连接,缓存机制;后来为了安全,有了加密通信。一切都是以用户的需求为导向的,用户的需要越来越高,协议就越来越高级,越来越完善。

    作者回复: 说的很好,互联网上的一切都是这么发展的。

    2019-05-29
    24
  • 1:你认为推动 HTTP 发展的原动力是什么? 我觉得推动HTTP协议发展的原动力是人类的好奇心+逐利,那为啥其他协议没有一统互联网江湖呢?HTTP简单、开放、顺应潮流,初心满足了人类天生好奇的需求,顺势满足了大家都能从中获利的需求,由于这两点支持的力量就变得强大无比,进一步反而增加了她一统互联网天下的能力。 2:你是怎么理解 HTTP(超文本传输协议)的? 超文本传输协议=超文本+传输+协议,协议即约定,HTTP就是约定超文本怎么传输的。初心就是分享信息,所以,简单、开放、有求有应,只针对文本,后来出现了音频、视频、动画、图片、超链接这些玩意,比纯文本复杂了一些,不过初心不改,所以,原则未变,只是需要调整一下适应这些正当其时的需求而已。

    作者回复: great。

    2020-03-22
    22
  • 乘风破浪
    关于host头和主机托管的关系,尝试自己理解了一下,请老师指正 一个主机/IP地址可以运行多个网站,即虚拟主机 www.a.com www.b.com … 它们在浏览器地址栏无论输入www.a.com或www.b.com都将解析到同一个IP地址 但不同网站的浏览器发起的访问请求,host填的URI不一样 如www.a.com请求host里填的是www.a.com, www.b.com填的www.b.com 这样就把同一个IP的不同网站(虚拟主机)区分开了

    作者回复: 理解的非常好,go on!

    2021-01-25
    13
  • innovationmech
    希望破冰篇和基础篇能更新快点

    作者回复: 慢慢来吧,还是要照顾很多对http不太了解的同学,你可以“养肥了再看”。

    2019-05-29
    10
  • 💍
    课后总结: http 0.9 : 功能较为简单, 且传输格式只能是纯文本格式 , 只支持get请求 , 请求完毕立即关闭请求 http 1.0: 1. 增加了head, post 等请求 2. 增加返回状态码 3. 引入版本号概念 4. 增加了http头部的概念, 提高灵活度 5. 传输的文本不再限制纯文本格式, 增加了音视频等格式 http1.1: 1. 增加了put, delete请求 2. 增加缓存管理 3. 明确链接管理, 推动持久链接 4. 允许响应数据分块 5. 强制要求host头 http 2.0 : 1. 二进制协议 2. 支持同时发送多个请求 3. 压缩头部, 减少数据传输量 4. 允许服务端主动推送数据 5. 增加安全性, 增加加密通信 http不同版本特点: http 0.9: 版本功能单一简单, 因前期设计简单, 后期版本更新就会比较容易 http 1.0: 功能相对0.9 更加丰富, 但并不是统一标准 只是一份文档, 不具约束力 http 1.1 : 相对1.0 添加了小规模更新, 但是它算是一份http统一的标准, 所有的http请求都需严格按照这个标准 http 2.0 : 相对1.1 提升了http请求的性能和安全性

    作者回复: awesome!

    2022-10-22归属地:上海
    7
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部