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 完全开发指南》等畅销书。
专栏为 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 性能优化,为整个专栏做个总结,内容贯穿全链路分析、硬件软件、内部外部、前端后端等多个方面,整体梳理协议相关知识。