透视HTTP协议
罗剑锋(Chrono)
奇虎360技术专家,Nginx/OpenResty开源项目贡献者
立即订阅
6077 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|To Be a HTTP Hero
免费
破冰篇 (7讲)
01 | 时势与英雄:HTTP的前世今生
02 | HTTP是什么?HTTP又不是什么?
03 | HTTP世界全览(上):与HTTP相关的各种概念
04 | HTTP世界全览(下):与HTTP相关的各种协议
05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?
06 | 域名里有哪些门道?
07 | 自己动手,搭建HTTP实验环境
基础篇 (7讲)
08 | 键入网址再按下回车,后面究竟发生了什么?
09 | HTTP报文是什么样子的?
10 | 应该如何理解请求方法?
11 | 你能写出正确的网址吗?
12 | 响应状态码该怎么用?
13 | HTTP有哪些特点?
14 | HTTP有哪些优点?又有哪些缺点?
进阶篇 (8讲)
15 | 海纳百川:HTTP的实体数据
16 | 把大象装进冰箱:HTTP传输大文件的方法
17 | 排队也要讲效率:HTTP的连接管理
18 | 四通八达:HTTP的重定向和跳转
19 | 让我知道你是谁:HTTP的Cookie机制
20 | 生鲜速递:HTTP的缓存控制
21 | 良心中间商:HTTP的代理服务
22 | 冷链周转:HTTP的缓存代理
安全篇 (7讲)
23 | HTTPS是什么?SSL/TLS又是什么?
24 | 固若金汤的根本(上):对称加密与非对称加密
25 | 固若金汤的根本(下):数字签名与证书
26 | 信任始于握手:TLS1.2连接过程解析
27 | 更好更快的握手:TLS1.3特性解析
28 | 连接太慢该怎么办:HTTPS的优化
29 | 我应该迁移到HTTPS吗?
飞翔篇 (4讲)
30 | 时代之风(上):HTTP/2特性概览
31 | 时代之风(下):HTTP/2内核剖析
32 | 未来之路:HTTP/3展望
33 | 我应该迁移到HTTP/2吗?
探索篇 (5讲)
34 | Nginx:高性能的Web服务器
35 | OpenResty:更灵活的Web服务器
36 | WAF:保护我们的网络服务
37 | CDN:加速我们的网络服务
38 | WebSocket:沙盒里的TCP
总结篇 (2讲)
39 | HTTP性能优化面面观(上)
40 | HTTP性能优化面面观(下)
答疑篇 (2讲)
41 | Linux/Mac实验环境搭建与URI查询参数
42 | DHE/ECDHE算法的原理
结束语 (1讲)
结束语 | 做兴趣使然的Hero
透视HTTP协议
登录|注册

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

Chrono 2019-05-29
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/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《透视HTTP协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(78)

  • 不靠谱~
    用户需求推动技术发展

    作者回复: Great。

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

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

    2019-05-29
    18
  • innovationmech
    希望破冰篇和基础篇能更新快点

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

    2019-05-29
    7
  • Smallfly
    老师文中说,HTTP2.0 的新特点:“二进制协议,不再是纯文本”。

    那像 HTTP/1.1 中的 application/octet-stream 和 multipart/form-data 也属于本文格式吗?

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

    2019-05-29
    7
  • AJIE
    老师提的问题很好,我之前都没考虑过~

    比如,
    ftp、telnet使用前必须输入用户名和密码,更偏向于一对一的使用,对用户来说不够开放。

    而http设计之初就是对所有用户开放,而且还统一了访问方式,使用门槛很低,就会有很多人用。至于后续各种优化和功能的添加,那都是顺其自然的事了。

    所以总的来说,是http对用户的开放性,使得用户推动其蓬勃发展。

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

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

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

    2019-05-29
    4
  • 因缺思厅
    看完了,觉得很赞。
    2019-05-29
    4
  • 业余草
    老师:后面有没有一些 http 安全知识方面的内容?比如:host 头攻击、缓速攻击等。

    作者回复: 到探索篇会讲WAF,不过攻击的手段太多,全列出来不太可能。

    2019-05-31
    3
  • JackJin
    开发至今,只使用到了http的get、post的请求方式,至于put、delete的方式,它们的存在肯定是有原因,至于是什么原因,应用在怎样的场景下,请老师解答下

    作者回复: put、delete这些可以用在restful应用里,表示各种对资源的操作。因为HTTP很灵活,也有一些历史遗留问题,不必要强求什么特性都用上。

    2019-05-29
    3
  • 小美
    1. HTTP 发展的原动力我认为还是人们对信息获取的需求升级,从单一的文本到静态图片,再到动态视频、音乐,更到未来的 AR/VR,以及与日俱增的风险,因此对于安全性、隐私的保护,为了满足更高层级的需要,HTTP 协议本身也要与时俱进;
    2. HTTP 的本质是 P(Protocol),即一个协议,定义了服务端与客户端数据交互的标准。

    作者回复: ✅

    2019-06-02
    2
  • 恒`∞`真理
    对于哪些软件功能使用了 HTTP 协议,个人最直观感受到的场景是在内网中通过 HTTP 代理服务器连接互联网的时候。比如淘宝、京东、iCloud 等都可以正常工作,但支付宝、微信、QQ 只有部分功能可用,而大部分网络游戏则完全不使用 HTTP。
    其中,QQ、支付宝这些 app 是为了安全性还是为了其他原因抛弃了 HTTP 呢?如果是前者的话,为什么京东金融等部分金融 app 也完全使用 HTTP?期待老师的解答。

    作者回复: http的优点是灵活方便,缺点是通信成本略高,每家公司选择通信协议都有自己的考虑,安全是因素之一,但真正的原因我们外人是不知道的。
    这个话题比较大,一下子很难回答好,sorry。

    2019-05-30
    2
  • HTTP 1.1 的 强制要求 Host 头,让互联网主机托管成为可能。

    难道不是总是要经过DNS解析吗,如果都要经过DNS解析的话,Host的设计和主机托管有什么关系。

    作者回复: 说起来比较复杂,在同一个IP地址上可能会托管有多个主机服务,在域名解析后到达服务器的时候,就需要用域名来选择。如果你用过Nginx,可能就会比较好理解。

    2019-05-30
    1
    2
  • 发条橙子 。
    突然想到一个点 ,是不是因为2.0之前数据都是以文本形式传输 ,所以才命名为 超文本传输协议 。 那后来2.0可以支持二进制形式传输了 , 实际上HTTP这个命名也不太准确了

    作者回复: 这个就是“历史遗留问题”了,不过也不用太在意,比如我们现在说的汽车、火车、轮船,习惯了就好。

    2019-05-30
    2
  • 二楞子
    1.用户需求
    2.我理解的http 类似河里的船 传输东西用的工具

    作者回复: 比喻有点像,tcp是河,http是船。

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

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

    2019-05-29
    1
    2
  • QQ怪
    用户需求推动技术革命。
    我理解的http就是表示传递数据是用什么格式

    作者回复: 不光是格式,还有传输控制和错误管理,下一讲会重点说。

    2019-05-29
    2
  • http最初就是来传输超文本内容的?

    作者回复: 是的,第一讲里说的很明白。

    2019-05-29
    2
  • 追风者
    业务驱动技术发展,技术反哺成就业务。

    作者回复: good

    2019-08-22
    1
  • Bot
    除了http还有其他“URI 吗,http是uri吗……

    作者回复: 有很多,比如ftp、ldap、ws,可以参考第11讲。

    2019-06-19
    1
  • Geek_7d396d
    需求产生了互联网,互联网推动了http的更新。
    超文本
    2019-05-31
    1
收起评论
78
返回
顶部