《图解HTTP》

总体观点
HTTP协议是整个万维网的基石。看似简单的纯文本请求与响应背后,隐藏着由TCP/IP四层网络栈、无状态设计、状态保持与内容协商共同支撑的庞大世界。
全书通过数百张极其生动的全彩图解与大白话,将枯燥的RFC标准具象化:从三次握手到状态码语义,从首部字段细节到HTTPS对称/非对称混合加密体系,层层剥离协议本相。
在现代互联网开发中,吃透HTTP是排查网络瓶颈、设计高可用RESTful API、保障Web通信安全与防御典型注入/跨站攻击的程序员基本功。
核心观点
-
1. TCP/IP分层协议的核心思想是各司其职与封装解耦
应用层负责具体业务意图,传输层保障可靠端口投递,网络层规划IP路由,链路层处理网卡物理收发,层层包裹报文首部。
浏览器发送GET请求时,HTTP报文被压入TCP段加上端口号,再压入IP数据报加上目标IP,最后封装成以太网帧通过网线发送。 -
2. HTTP无状态协议通过Cookie实现了优雅的状态延续
HTTP协议自身不持久化客户端上下文以保持服务器极简吞吐能力;为了实现电商购物车,网景公司发明了Cookie来弥补状态缺憾。
用户登录成功后服务器在响应头返回Set-Cookie: sid=123,此后浏览器每次向该域名发送请求均自动携带此Cookie表明身份。 -
3. 状态码是客户端与服务端之间最高效的沟通暗号
清晰理解2xx成功、3xx重定向、4xx客户端请求有误、5xx服务端内部崩溃的语义标准,是构建工业级Web服务的前提。
资源永久迁移返回301促使搜索引擎更新索引并自动跳转,资源暂未变更返回304让浏览器直接复用本地强缓存省下流量。 -
4. HTTPS通过对称与非对称加密的混合架构兼顾安全与速度
非对称加密算力消耗极大但安全性高,仅用于SSL握手阶段安全交换对称密钥;后续大规模网页内容传输一律使用极速的对称加密。
浏览器用CA证书公钥验证服务器真伪并协商出对称预主密钥,握手成功后全量HTML数据均采用AES对称加密极速传输。 -
5. HTTP首部字段承载了内容协商与缓存控制的命脉
通过Cache-Control、ETag、Accept-Encoding等首部,客户端与服务端无需改动请求体就能精准协调压缩格式与缓存新鲜度。
客户端发送Accept-Encoding: gzip,服务端响应时将网页用Gzip压缩并在首部标明Content-Encoding: gzip,传输体积缩水70%. -
6. Web攻击多源于对不可信输入缺乏严格校验与转义
无论是SQL注入、跨站脚本(XSS)还是跨站请求伪造(CSRF),本质都是黑客利用代码与数据的混淆,诱骗系统越权执行恶意指令。
在留言板输入带有<script>恶意窃取Cookie标签的留言,若服务端未做HTML实体转义直接回显,访问该页面的所有用户Cookie将被盗。
全书思维导图 · 知识脉络树
全书结构
-
第1章 了解Web及网络基础
图解TCP/IP四层协议栈模型、IP寻址路由原理、DNS域名解析流程,以及TCP三次握手与四次挥手建立断开连接的机制。
画图展示信使通过DNS查出网址对应IP地址,并用三次握手向目标服务器打招呼建立稳定通道的全过程。 -
第2章 简单的HTTP协议
剖析请求与响应报文结构、GET/POST/PUT/DELETE等核心方法,以及持久连接(Keep-Alive)与管线化技术的演进。
对比短连接每次请求都要重新握手建连的巨大开销,说明Keep-Alive如何让多个图片请求复用同一条TCP连接。 -
第3章 HTTP报文内的HTTP信息
详解报文首部、空行与报文主体,剖析分块传输编码(Chunked Transfer)、多部分对象集合(Multipart)与范围请求断点续传。
大文件下载意外中断后,客户端发送带Range: bytes=50001-首部的请求,服务器返回206 Partial Content实现断点续传。 -
第4章 返回结果的HTTP状态码
系统梳理200 OK、204 No Content、301/302重定向、304 Not Modified、400/403/404及500/503等核心状态码的精准语义与排障逻辑。
解释为什么网站升级维护时应该返回503 Service Unavailable并附带Retry-After,而不是盲目返回404导致搜索引擎惩罚。 -
第5章 与HTTP协作的Web服务器
解析一台物理服务器托管多虚拟主机的原理,揭秘代理(Proxy)、网关(Gateway)与隧道(Tunnel)在流量转发中的职责差异。
展示反向代理服务器(如Nginx)作为流量守门人接收外网请求,根据负载均衡策略分发给内网多台业务集群的完整链路。 -
第6章 HTTP首部
巨细靡遗图解通用首部、请求首部、响应首部和实体首部,重点破解Cache-Control、ETag与Cookie在工程中的配合逻辑。
分析浏览器第二次请求静态资源时携带If-None-Match: 'hash123',服务器对比无改动后返回空包304的毫秒级响应过程。 -
第7章 确保Web安全的HTTPS
直击HTTP明文传输被窃听、篡改与伪装的致命痛点,揭秘SSL/TLS数字证书认证体系与对称/非对称混合加密握手机制。
用图解剖析CA证书颁发机构如何用根证书私钥为网站签名,浏览器如何内置受信任根证书公钥击破中间人劫持攻击。 -
第8章 确认访问用户身份的认证
对比BASIC认证、DIGEST摘要认证、SSL客户端证书认证与基于表单的Cookie-Session认证,揭示现实应用中最通用的身份核验链路。
演示表单提交加密密码给服务端换取Session ID,后续通过Session持久化用户角色权限的安全机制。 -
第9章 基于HTTP的功能追加协议
回顾HTTP/1.1队头阻塞瓶颈,讲解SPDY、HTTP/2多路复用与首部压缩(HPACK),以及双向长连WebSocket的突破性技术演进。
演示WebSocket握手升级(101 Switching Protocols)后,浏览器与服务器建立双工全双工长通道,实时推送股市行情数据。 -
第10章 构建Web内容的技术
图解HTML/CSS/JavaScript三剑客、DOM树构建、动态CGI网关、XML与JSON数据格式,勾勒Web应用从原始到现代的全景蓝图。
展示浏览器收到HTML字符串后,如何通过词法分析将其转化为树状DOM结构并与CSSOM合并生成最终渲染树。 -
第11章 Web的攻击技术
系统剖析XSS跨站脚本、SQL注入、OS命令注入、目录遍历、会话劫持与CSRF跨站请求伪造的攻击攻击链与标准防御方案。
演示黑客在钓鱼网站中嵌入img标签诱骗用户发起向银行转账的POST请求,分析如何利用SameSite Cookie与CSRF Token拦截攻势。