透视HTTP协议 / 深入理解HTTP协议本质与应用
罗剑锋(Chrono)
奇虎360技术专家,Nginx/OpenResty开源项目贡献者
 
  • 课程目录
  • 课程介绍
  • 开篇词|To Be a HTTP Hero

    对于如此常见、如此容易被忽略的HTTP,我们要怎么做才能成为一个称职的HTTP Hero?

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

    你知道历史上哪些事件推动了HTTP的前进吗?它又促进了哪些技术的产生呢?

  • 02 | HTTP是什么?HTTP又不是什么?

    所谓的超文本传输协议,它究竟是什么?它能做什么,又不能做什么呢?

  • 03 | HTTP世界全览(上):与HTTP相关的各种概念

    网络世界纷繁复杂,你知道浏览器、服务器、CDN、爬虫、HTML、WebService、WAF都是什么吗?

  • 04 | HTTP世界全览(下):与HTTP相关的各种协议

    学习HTTP的相关协议,可以让你对HTTP了解得更为全面,为后续的学习扫清障碍。

  • 05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?

    你一定经常听到“四层负载均衡”“七层负载均衡”“二层转发”“三层路由”的说法,那么你真正理解这些层次的含义吗?

  • 06 | 域名里有哪些门道?

    与HTTP协议有重要关系的域名和DNS,你都了解吗?

  • 07 | 自己动手,搭建HTTP实验环境

    自己动手,丰衣足食。让我们在自己的电脑上搭建出一个HTTP实验环境,并加以测试验证,方便后续学习。

  • 08 | 键入网址再按下回车,后面究竟发生了什么?

    螺蛳壳里做道场,通过建立好的“最小化”的实验环境,了解HTTP协议工作的全过程。

  • 09 | HTTP报文是什么样子的?

    HTTP协议的核心部分——传输的报文内容的组成部分、解析规则和处理策略都是怎样的呢?

  • 10 | 应该如何理解请求方法?

    所谓的“请求方法”,它的实际含义就是客户端发出了一个“动作指令”,要求服务器端对URI定位的资源执行这个动作。

  • 11 | 你能写出正确的网址吗?

    只要你清楚了URI的格式,就能够轻易地“破解”地址栏里各式各样的长串字符了。

  • 12 | 响应状态码该怎么用?

    状态码是什么?它该怎么用?RFC标准将状态码分为了5大类,你都了解吗?

  • 13 | HTTP有哪些特点?

    只有全方位、多角度了解HTTP,才能实现“扬长避短”,更好地利用HTTP。

  • 14 | HTTP有哪些优点?又有哪些缺点?

    基于已知的HTTP的五个特点,这次我们来评价它们的优劣和好坏。

  • 15 | 海纳百川:HTTP的实体数据

    今天我们从HTTP的body谈起,学习HTTP里的数据类型和语言类型。

  • 16 | 把大象装进冰箱:HTTP传输大文件的方法

    想要在有限的带宽下传输大文件,我们应该怎么做呢?

  • 17 | 排队也要讲效率:HTTP的连接管理

    HTTP的连接管理是个“老生常谈”的话题,今天让我们一起来把它们弄清楚。

  • 18 | 四通八达:HTTP的重定向和跳转

    HTTP的重定向和跳转是怎么做到的?又有哪些应用场景?

  • 19 | 让我知道你是谁:HTTP的Cookie机制

    虽然已有多种技术能比Cookie存储更多数据,但Cookie仍然是最通用、兼容性最强的客户端数据存储手段。

  • 20 | 生鲜速递:HTTP的缓存控制

    HTTP缓存看上去很复杂,但基本原理就一句话:“没有消息,就是好消息,没有请求的请求,才是最快的请求”。

  • 21 | 良心中间商:HTTP的代理服务

    HTTP的代理服务其实是个“良心中间商”,为HTTP处理增加了更多的灵活性。

  • 22 | 冷链周转:HTTP的缓存代理

    为什么说,HTTP的缓存代理就像是我们日常生活中需要的生鲜冷链业务呢?

  • 23 | HTTPS是什么?SSL/TLS又是什么?

    HTTPS解决了HTTP里“明文”“不安全”的缺点,尽最大可能保证着我们的上网安全。

  • 24 | 固若金汤的根本(上):对称加密与非对称加密

    HTTPS是怎么为HTTP增加了机密性、完整性,身份认证和不可否认等特性的呢?

  • 25 | 固若金汤的根本(下):数字签名与证书

    数字签名、证书、CA,这些知识有种“盗梦空间”一层套一层的感觉,你都了解它们吗?

  • 26 | 信任始于握手:TLS1.2连接过程解析

    当你在浏览器地址栏里键入“**https**”开头的URI,再按下回车,会发生什么呢?

  • 27 | 更好更快的握手:TLS1.3特性解析

    TLS1.3有哪些新特性?让我们用抓包的方式来研究它的握手过程吧。

  • 28 | 连接太慢该怎么办:HTTPS的优化

    都说“HTTPS的连接很慢”,那么“慢”的原因是什么呢?

  • 29 | 我应该迁移到HTTPS吗?

    HTTP向HTTPS迁移的过程中有什么必须掌握的技术要点?

  • 30 | 时代之风(上):HTTP/2特性概览

    HTTP/2有哪些重要特性是与我们息息相关的?

  • 31 | 时代之风(下):HTTP/2内核剖析

    HTTP/2的内容很多,但只要你掌握了今天的内容,以后再看RFC文档都不会有难度了。

  • 32 | 未来之路:HTTP/3展望

    HTTP/3在HTTP/2的基础上又实现了质的飞跃,真正“完美”地解决了“队头阻塞”问题。

  • 33 | 我应该迁移到HTTP/2吗?

    我们是否应该迁移到HTTP/2,又应该如何迁移到HTTP/2呢?

  • 34 | Nginx:高性能的Web服务器

    让我们抛开书本,换个角度,结合HTTP协议来讲Nginx,带你窥视一下HTTP处理的内幕。

  • 35 | OpenResty:更灵活的Web服务器

    OpenResty有Nginx的优点,却没有Nginx的缺点,既轻量级、高性能,又灵活、可动态配置。

  • 36 | WAF:保护我们的网络服务

    今天一起来学习“网络应用防火墙”,也就是WAF,看看如何使用它加固我们的Web服务。

  • 37 | CDN:加速我们的网络服务

    CDN为什么会出现?它又为我们提供了怎样的服务?

  • 38 | WebSocket:沙盒里的TCP

    有了WebSocket,我们就可以在浏览器里与服务器直接建立“TCP连接”,获得更多的自由。

  • 39 | HTTP性能优化面面观(上)

    要做HTTP的性能优化,你要先知道什么是性能?它都有哪些指标,又应该如何度量,进而采取哪些手段去优化?

  • 40 | HTTP性能优化面面观(下)

    HTTP的性能优化中,都有哪些具体措施呢?

  • 结束语 | 做兴趣使然的Hero

    感谢陪伴,一路有你,祝愿我们都能够保持初心,做兴趣使然的英雄。

  • 41 | Linux/Mac实验环境搭建与URI查询参数

    来说说Linux/Mac实验环境搭建与URI查询参数文章中出现次数较多的问题。

  • 42 | DHE/ECDHE算法的原理

    DHE/ECDHE算法的原理,你听明白了吗?

HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。简单来说,如果你不懂HTTP协议,那就相当于是个只有“半桶水”的程序员。

HTTP协议看起来偏理论,但是实践中却总是有它的影子。比如:

  • 用Nginx搭建Web服务器,照着网上的文章配好了,但里面那么多的指令,什么keepalive、rewrite、proxy_pass都是怎么回事?为什么要这么配置?
  • 用Python写爬虫,URI、URL“傻傻分不清”,有时里面还会加一些奇怪的字符,怎么处理才好?
  • 都说HTTP缓存很有用,可以大幅度提升系统性能,可它是怎么做到的?又应该用在何时何地?
  • HTTP和HTTPS是什么关系?还经常听说有SSL/TLS/SNI/OCSP/ALPN……这么多稀奇古怪的缩写,头都大了,实在是搞不懂。
  • 据说又出了新的HTTP/2、HTTP/3,是不是要考虑学习一下呢?

如果这些问题你都深有感受,那么“透视HTTP协议”专栏就是专门为你打造的。

在这个专栏中,Chrono会带你拨开HTTP纷繁复杂的表象,带你重新梳理出简洁明了的知识框架,新手可以由浅入深、系统学习,老手可以温故知新、查漏补缺。

Chrono长期从事Web后台服务器的研发工作,深知HTTP的逻辑、基本原理与应用。在这个专栏中,他会带你一起,花最少的时间,用最少的精力,掌握最多、最全面、最系统的HTTP相关知识。

罗剑锋,网名“Chrono”。毕业于北京理工大学计算机专业, 奇虎360技术专家,Nginx/OpenResty开源项目贡献者,熟悉各种网络应用协议,专注于C/C++、Linux、高性能编程等领域,著有《Nginx完全开发指南》《C++11/14高级编程》《Boost程序库完全开发指南》《OpenResty完全开发指南》等畅销书。

专栏共计40讲,分为7大模块。

破冰篇

破冰篇会从0开始带你建立并梳理HTTP知识框架,打通相关知识点,串联成知识链,让你知道它们之间是怎么联系、怎么运行的。手把手带你搭建HTTP实验环境,为进入正式学习做好准备。

基础篇

基础篇将带你快速进入状态,从一个“最小化”的HTTP实验环境出发,深入理解HTTP工作的全过程;进而讲解报文、请求方法、网址、响应状态码、HTTP的特点和优缺点。带你打好HTTP的实践基础。

进阶篇

进阶篇将为你详细解析HTTP里的各种头字段,包括定义、功能、使用方式、注意事项等等,帮助你理解每一个常用、实用的知识点,让你的HTTP实践能力成功进阶。

安全篇

互联网中的安全不可忽视,安全篇会告诉你为什么要有HTTPS?SSL/TLS又是什么?并深入浅出地为你讲解让HTTP协议固若金汤的根本知识,包括对称加密、非对称加密、数字签名与证书。此外,这一模块还会为你解析TLS1.2、TLS1.3的特性,并讲解HTTPS的优化方法。

飞翔篇

随着时代的发展,最初的HTTP已经不能满足时代的需要。飞翔篇中的内容为你深入阐释HTTP/2和HTTP/3的优势并补充实践内容。

探索篇

HTTP的应用广泛,探索篇中的内容不只局限在HTTP本身,还会讲到与它相关的Nginx、OpenResty、WAF、CDN、WebSocket等等。

总结篇

这一模块会通过分析HTTP性能优化,为整个专栏做个总结,内容贯穿全链路分析、硬件软件、内部外部、前端后端等多个方面,整体梳理协议相关知识。

限时福利