第9章 基于HTTP的功能追加协议

在2013至2014年的技术快照下理解SPDY、WebSocket、当时仍受期待的HTTP/2.0和WebDAV扩展

第9章 基于HTTP的功能追加协议

本课程对应[日]上野宣《图解HTTP》,于均良译,人民邮电出版社/图灵教育,2014年4月首版,308页,双色印刷,ISBN 9787115351531;原书《HTTPの教科書》,ISBN 9784798126258。图灵官方资料标明出版日期为2014年4月22日、172张图解;正式目录为11章、202个节/小节节点。本页严格按该首版章次组织,不用后续规范替换原书语境。

学习目标

  • 能解释“第9章 基于HTTP的功能追加协议”全部正式节点,并把概念定位到真实请求、响应或应用状态。
  • 能绘制客户端、中介、服务器之间的消息方向、主体边界和关键状态转移。
  • 能设计单变量实验,验证“能区分HTTP承载、协议升级和HTTP方法扩展,并明确哪些结论属于首版出版时的提案或实现状态”。
  • 能写出并提交包含原始报文、失败反例、恢复条件和版次边界的独立证据包。

机制总览

第9章 基于HTTP的功能追加协议:机制路径

  1. 1

    从一条可证伪的HTTP交换开始

    先预测:用今天HTTP/2或HTTP/3的最终规范重写本章,会抹掉SPDY为何出现以及原书对HTTP瓶颈的历史判断。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。

  2. 2

    核心词汇与首版边界

    这些词汇按2014年首版语义使用。SPDY、HTTP/2.0、X-XSS-Protection、P3P等保留出版时状态;HTTP/2最终规范、HTTP/3、JWT、OAuth、SameSite等后续技术只能作为另行标注的现代补充,不改变本书目录分母。

  3. 3

    核心机制深读

    页面资源数量增加后,单连接按序响应、并发连接限制、重复且冗长的首部和客户端轮询放大延迟。优化图片合并、内联和域名分片只是绕过协议限制,也会增加缓存与维护复杂度。

先按顺序建立机制,再进入实验切换阶段并检查失效证据。

章级决策实验

第9章 基于HTTP的功能追加协议:机制与证据

切换《第9章 基于HTTP的功能追加协议》的三个关键教学阶段,先解释机制,再用运行与失败证据验证结论。

选择推理阶段

当前阶段 · 从一条可证伪的HTTP交换开始

先预测:用今天HTTP/2或HTTP/3的最终规范重写本章,会抹掉SPDY为何出现以及原书对HTTP瓶颈的历史判断。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。

可核验证据

保存「从一条可证伪的HTTP交换开始」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。

学完《第9章 基于HTTP的功能追加协议》后,应能从输入和前置条件推导状态变化,并用可重复的构建、运行或边界测试证明结果。

失效—证据矩阵

第9章 基于HTTP的功能追加协议:失效与核验

从一条可证伪的HTTP交换开始

典型失效

若只背诵「从一条可证伪的HTTP交换开始」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。

核验证据

保存「从一条可证伪的HTTP交换开始」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。

核心词汇与首版边界

典型失效

若只背诵「核心词汇与首版边界」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。

核验证据

保存「核心词汇与首版边界」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。

核心机制深读

典型失效

若只背诵「核心机制深读」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。

核验证据

保存「核心机制深读」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。

每个判断都必须能落到观测、测试或产物,不能只凭代码表面推测。

从一条可证伪的HTTP交换开始

先预测:用今天HTTP/2或HTTP/3的最终规范重写本章,会抹掉SPDY为何出现以及原书对HTTP瓶颈的历史判断。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。

本章的主问题是:在2013至2014年的技术快照下理解SPDY、WebSocket、当时仍受期待的HTTP/2.0和WebDAV扩展。原书以图解建立直觉,本课程把图解升级为可操作轨迹:每个箭头必须注明方向、协议对象和完成点;每个安全结论必须附一条攻击或误配置反例。

验收不变量是:能区分HTTP承载、协议升级和HTTP方法扩展,并明确哪些结论属于首版出版时的提案或实现状态。浏览器页面“看起来正常”只能说明某个终点出现,不能单独证明DNS、连接、TLS、缓存、认证或授权中的哪一段正确。

核心词汇与首版边界

这些词汇按2014年首版语义使用。SPDY、HTTP/2.0、X-XSS-Protection、P3P等保留出版时状态;HTTP/2最终规范、HTTP/3、JWT、OAuth、SameSite等后续技术只能作为另行标注的现代补充,不改变本书目录分母。

核心机制深读

HTTP/1.x瓶颈的时代背景

页面资源数量增加后,单连接按序响应、并发连接限制、重复且冗长的首部和客户端轮询放大延迟。优化图片合并、内联和域名分片只是绕过协议限制,也会增加缓存与维护复杂度。

动手试:先写下预期请求、响应与状态变化,再捕获一次正常交换和一次只改一个变量的失败交换。比较状态码、首部、主体、缓存或会话状态,确认结论来自证据而非浏览器表象。

SPDY是实验答案而非终点

SPDY在一条连接上多路复用流、压缩首部、分配优先级并支持服务器推送,但仍依赖现有网络与服务器生态。原书问题是它能否消除全部Web瓶颈,答案必须包括应用、服务端处理和TCP仍可能成为限制。

WebSocket先握手再换协议

客户端以Upgrade和Connection请求切换,服务器返回101并用Sec-WebSocket-Accept证明握手。此后传输WebSocket帧,双方都可主动发送,不再为每条消息套完整HTTP请求响应。

WebDAV扩展资源管理

WebDAV增加PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK、UNLOCK等方法及207 Multi-Status等状态,使服务器端集合、属性和锁可由HTTP管理,也扩大了权限和互操作复杂度。

原书目录核对清单

本页承担12个目录或复习节点,正文、图解、实验和题目必须能反向定位每一项:

  • 9.1 基于HTTP的协议
  • 9.2 消除HTTP瓶颈的SPDY
  • 9.2.1 HTTP的瓶颈
  • 9.2.2 SPDY的设计与功能
  • 9.2.3 SPDY消除Web瓶颈了么
  • 9.3 使用浏览器进行全双工通信的WebSocket
  • 9.3.1 WebSocket的设计与功能
  • 9.3.2 WebSocket协议
  • 9.4 期盼已久的HTTP/2.0
  • 9.5 Web服务器管理文件的WebDAV
  • 9.5.1 扩展HTTP/1.1的WebDAV
  • 9.5.2 WebDAV内新增的方法及状态码
分步1 / 3

复原正常协议轨迹

固定URI、客户端、网络和服务端状态,标出请求行、首部、主体、中介与最终响应。

可复现实验

GET /chat HTTP/1.1
Host: server.example.test
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: random-base64
 
HTTP/1.1 101 Switching Protocols
HTTP polling: request -> wait -> response -> repeat
WebSocket: HTTP upgrade -> frame <-> frame <-> frame
PROPFIND /docs/ HTTP/1.1
Depth: 1
 
HTTP/1.1 207 Multi-Status

独立证据门

第9章 基于HTTP的功能追加协议 的最小证据包包含:首版目录节点、请求与响应原文、连接/中介方向、主体边界、缓存或会话状态、一个单变量失败、最终副作用、已知限制、恢复步骤、责任人与复核人。

练习

练习

问题 1:为什么“第9章 基于HTTP的功能追加协议”必须固定2014年首版语境?

问题 2:怎样构造“用今天HTTP/2或HTTP/3的最终规范重写本章,会抹掉SPDY为何出现以及原书对HTTP瓶颈的历史判断”的最小反例?

问题 3:何时可以认为本页完成独立交接?

本章回顾

“第9章 基于HTTP的功能追加协议”的核心是在2013至2014年的技术快照下理解SPDY、WebSocket、当时仍受期待的HTTP/2.0和WebDAV扩展。真正掌握不止是认出术语,而是能让一条请求在消息、连接、中介、表示、身份和攻击边界之间闭环,并用失败实验说明边界一旦被破坏会发生什么。

名词解释

本章出现的专业名词,用大白话再讲一遍。

SPDY

Google提出、运行在SSL之上的实验性协议,用多路复用、压缩和服务器推送缓解HTTP/1.x瓶颈。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。

WebSocket

经HTTP Upgrade握手后切换为持久全双工消息通信的独立协议。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。

HTTP/2.0

原书出版时仍在制定、吸收SPDY等经验的新一代HTTP目标。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。

WebDAV

在HTTP/1.1上增加集合、属性、锁和远程文件管理方法的扩展。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。

Upgrade

客户端提出切换协议、服务器以101接受的HTTP/1.1升级机制。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。

← 上一页:第8章 确认访问用户身份的认证 · 下一页:第10章 构建Web内容的技术 →

原版目录概念补充核对

以下条目补齐官方目录中容易被示例主线掩盖的概念。它们不重复罗列目录,而是明确每项概念的机制、适用边界和验收证据。

9.2 消除HTTP瓶颈的SPDY:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.2 消除HTTP瓶颈的SPDY描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.2.1 HTTP的瓶颈:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.2.1 HTTP的瓶颈描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.2.2 SPDY的设计与功能:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.2.2 SPDY的设计与功能描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.2.3 SPDY消除Web瓶颈了么:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.2.3 SPDY消除Web瓶颈了么描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.3 使用浏览器进行全双工通信的WebSocket:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.3 使用浏览器进行全双工通信的WebSocket描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.3.1 WebSocket的设计与功能:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.3.1 WebSocket的设计与功能描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.3.2 WebSocket协议:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.3.2 WebSocket协议描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.4 期盼已久的HTTP/2.0:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.4 期盼已久的HTTP/2.0描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.5 Web服务器管理文件的WebDAV:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.5 Web服务器管理文件的WebDAV描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.5.1 扩展HTTP/1.1的WebDAV:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.5.1 扩展HTTP/1.1的WebDAV描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。

9.5.2 WebDAV内新增的方法及状态码:机制、边界与证据

第9章 基于HTTP的功能追加协议中的9.5.2 WebDAV内新增的方法及状态码要放进一次完整 HTTP 交换中判断:请求行与首部给出前置条件,状态码和响应首部说明处理结果,消息体承载表示。复核时保存原始报文并改变方法、资源状态或连接复用条件,确认客户端、代理与服务端对语义的解释一致。

资料与写作方式声明

本章以上野宣《图解HTTP》2014年4月首版权威目录界定学习范围,并结合正文列出的技术资料独立重写;不宣称复现原书正文,也不沿用原作表述。

原作版权归作者与出版社所有;本站原创教学结构与表述仅供学习交流。

讨论

评论区加载中…