第6章 HTTP首部
系统掌握HTTP/1.1通用、请求、响应、实体、Cookie及原书列出的扩展首部字段
第6章 HTTP首部
本课程对应[日]上野宣《图解HTTP》,于均良译,人民邮电出版社/图灵教育,2014年4月首版,308页,双色印刷,ISBN 9787115351531;原书《HTTPの教科書》,ISBN 9784798126258。图灵官方资料标明出版日期为2014年4月22日、172张图解;正式目录为11章、202个节/小节节点。本页严格按该首版章次组织,不用后续规范替换原书语境。
学习目标
- 能解释“第6章 HTTP首部”全部正式节点,并把概念定位到真实请求、响应或应用状态。
- 能绘制客户端、中介、服务器之间的消息方向、主体边界和关键状态转移。
- 能设计单变量实验,验证“面对原始报文能按端到端/逐跳和通用/请求/响应/实体分类解释每个字段,并用条件请求与缓存键验证组合语义”。
- 能写出并提交包含原始报文、失败反例、恢复条件和版次边界的独立证据包。
机制总览
第6章 HTTP首部:机制路径
- 1
从一条可证伪的HTTP交换开始
先预测:孤立背字段名、不区分请求方向与逐跳边界,或把同名现代语义倒灌,会造成缓存泄漏、条件更新覆盖和代理转发错误。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。
- 2
核心词汇与首版边界
这些词汇按2014年首版语义使用。SPDY、HTTP/2.0、X-XSS-Protection、P3P等保留出版时状态;HTTP/2最终规范、HTTP/3、JWT、OAuth、SameSite等后续技术只能作为另行标注的现代补充,不改变本书目录分母。
- 3
核心机制深读
通用首部可出现在请求或响应;请求首部补充客户端、目标与条件;响应首部补充服务器结果;实体首部描述表示。Connection、Transfer-Encoding等逐跳字段只能作用于一段连接,代理转发前必须处理。
章级决策实验
第6章 HTTP首部:机制与证据
切换《第6章 HTTP首部》的三个关键教学阶段,先解释机制,再用运行与失败证据验证结论。
选择推理阶段
当前阶段 · 从一条可证伪的HTTP交换开始
先预测:孤立背字段名、不区分请求方向与逐跳边界,或把同名现代语义倒灌,会造成缓存泄漏、条件更新覆盖和代理转发错误。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。
可核验证据
保存「从一条可证伪的HTTP交换开始」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
学完《第6章 HTTP首部》后,应能从输入和前置条件推导状态变化,并用可重复的构建、运行或边界测试证明结果。
失效—证据矩阵
第6章 HTTP首部:失效与核验
从一条可证伪的HTTP交换开始
典型失效
若只背诵「从一条可证伪的HTTP交换开始」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。
核验证据
保存「从一条可证伪的HTTP交换开始」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
核心词汇与首版边界
典型失效
若只背诵「核心词汇与首版边界」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。
核验证据
保存「核心词汇与首版边界」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
核心机制深读
典型失效
若只背诵「核心机制深读」字段而不区分请求语义、缓存边界和安全上下文,代理或浏览器状态变化后会得到错误响应或泄露数据。
核验证据
保存「核心机制深读」的原始请求与响应报文,用 curl 和浏览器网络面板复现成功、重定向、缓存及拒绝路径,并核对状态码与首部。
从一条可证伪的HTTP交换开始
先预测:孤立背字段名、不区分请求方向与逐跳边界,或把同名现代语义倒灌,会造成缓存泄漏、条件更新覆盖和代理转发错误。把预测写成“请求输入、线上消息、接收方状态、响应输出、最终副作用”五列,再运行实验。若结果与预测不同,先修正模型,不要只截取一个状态码证明自己。
本章的主问题是:系统掌握HTTP/1.1通用、请求、响应、实体、Cookie及原书列出的扩展首部字段。原书以图解建立直觉,本课程把图解升级为可操作轨迹:每个箭头必须注明方向、协议对象和完成点;每个安全结论必须附一条攻击或误配置反例。
验收不变量是:面对原始报文能按端到端/逐跳和通用/请求/响应/实体分类解释每个字段,并用条件请求与缓存键验证组合语义。浏览器页面“看起来正常”只能说明某个终点出现,不能单独证明DNS、连接、TLS、缓存、认证或授权中的哪一段正确。
核心词汇与首版边界
↡必须转发到最终接收者并由端点解释的首部、↡只在相邻两节点间有效,不应由代理继续转发的首部、↡用If-Match、If-None-Match等验证器约束方法执行的请求、↡描述报文所携带表示的媒体类型、长度、编码、语言和验证时间等元数据、↡服务器下发Set-Cookie、客户端回送Cookie形成的状态携带机制
这些词汇按2014年首版语义使用。SPDY、HTTP/2.0、X-XSS-Protection、P3P等保留出版时状态;HTTP/2最终规范、HTTP/3、JWT、OAuth、SameSite等后续技术只能作为另行标注的现代补充,不改变本书目录分母。
核心机制深读
先按方向和作用域分类
通用首部可出现在请求或响应;请求首部补充客户端、目标与条件;响应首部补充服务器结果;实体首部描述表示。Connection、Transfer-Encoding等逐跳字段只能作用于一段连接,代理转发前必须处理。
动手试:先写下预期请求、响应与状态变化,再捕获一次正常交换和一次只改一个变量的失败交换。比较状态码、首部、主体、缓存或会话状态,确认结论来自证据而非浏览器表象。
缓存控制是一组约束
Cache-Control在请求和响应中使用不同指令组合控制可缓存性、新鲜度、重验证与共享范围。Age表示共享缓存中估算的驻留时间,Expires给绝对失效时间,ETag与Last-Modified提供验证器,Vary扩展缓存键。
条件请求防止浪费与覆盖
If-None-Match用于GET/HEAD重验证可得到304,也可用星号防止意外覆盖已有资源;If-Match用于仅在实体标签匹配时更新;If-Range验证成功才发送范围,否则返回完整表示。失败通常是412而不是盲目执行。
首部是协议状态机的输入
Content-Length决定定长主体,Transfer-Encoding决定逐跳编码,Content-Encoding说明表示编码,Content-Type说明媒体类型。若边界字段冲突,接收方不能凭猜测拼接,否则会出现请求走私等解析差异风险。
历史扩展保留时代说明
X-Frame-Options用于限制页面被框架嵌入,X-XSS-Protection控制当时浏览器的XSS过滤器,DNT表达不跟踪偏好,P3P描述隐私策略。课程按2014年首版解释其历史角色,不宣称它们是今天充分的安全方案。
原书目录核对清单
本页承担67个目录或复习节点,正文、图解、实验和题目必须能反向定位每一项:
- 6.1 HTTP报文首部
- 6.2 HTTP首部字段
- 6.2.1 HTTP首部字段传递重要信息
- 6.2.2 HTTP首部字段结构
- 6.2.3 4种HTTP首部字段类型
- 6.2.4 HTTP/1.1首部字段一览
- 6.2.5 非HTTP/1.1首部字段
- 6.2.6 End-to-end首部和Hop-by-hop首部
- 6.3 HTTP/1.1通用首部字段
- 6.3.1 Cache-Control
- 6.3.2 Connection
- 6.3.3 Date
- 6.3.4 Pragma
- 6.3.5 Trailer
- 6.3.6 Transfer-Encoding
- 6.3.7 Upgrade
- 6.3.8 Via
- 6.3.9 Warning
- 6.4 请求首部字段
- 6.4.1 Accept
- 6.4.2 Accept-Charset
- 6.4.3 Accept-Encoding
- 6.4.4 Accept-Language
- 6.4.5 Authorization
- 6.4.6 Expect
- 6.4.7 From
- 6.4.8 Host
- 6.4.9 If-Match
- 6.4.10 If-Modified-Since
- 6.4.11 If-None-Match
- 6.4.12 If-Range
- 6.4.13 If-Unmodified-Since
- 6.4.14 Max-Forwards
- 6.4.15 Proxy-Authorization
- 6.4.16 Range
- 6.4.17 Referer
- 6.4.18 TE
- 6.4.19 User-Agent
- 6.5 响应首部字段
- 6.5.1 Accept-Ranges
- 6.5.2 Age
- 6.5.3 ETag
- 6.5.4 Location
- 6.5.5 Proxy-Authenticate
- 6.5.6 Retry-After
- 6.5.7 Server
- 6.5.8 Vary
- 6.5.9 WWW-Authenticate
- 6.6 实体首部字段
- 6.6.1 Allow
- 6.6.2 Content-Encoding
- 6.6.3 Content-Language
- 6.6.4 Content-Length
- 6.6.5 Content-Location
- 6.6.6 Content-MD5
- 6.6.7 Content-Range
- 6.6.8 Content-Type
- 6.6.9 Expires
- 6.6.10 Last-Modified
- 6.7 为Cookie服务的首部字段
- 6.7.1 Set-Cookie
- 6.7.2 Cookie
- 6.8 其他首部字段
- 6.8.1 X-Frame-Options
- 6.8.2 X-XSS-Protection
- 6.8.3 DNT
- 6.8.4 P3P
复原正常协议轨迹
固定URI、客户端、网络和服务端状态,标出请求行、首部、主体、中介与最终响应。
可复现实验
GET /manual HTTP/1.1
Host: www.example.test
Accept: text/html
Accept-Encoding: gzip
If-None-Match: "v7"HTTP/1.1 200 OK
Date: Tue, 16 Jul 2026 08:00:00 GMT
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Content-Length: 842
ETag: "v8"
Vary: Accept-EncodingPUT /item/42 HTTP/1.1
If-Match: "v8"
Content-Type: application/json
{"name":"new"}独立证据门
第6章 HTTP首部 的最小证据包包含:首版目录节点、请求与响应原文、连接/中介方向、主体边界、缓存或会话状态、一个单变量失败、最终副作用、已知限制、恢复步骤、责任人与复核人。
练习
练习
问题 1:为什么“第6章 HTTP首部”必须固定2014年首版语境?
问题 2:怎样构造“孤立背字段名、不区分请求方向与逐跳边界,或把同名现代语义倒灌,会造成缓存泄漏、条件更新覆盖和代理转发错误”的最小反例?
问题 3:何时可以认为本页完成独立交接?
本章回顾
“第6章 HTTP首部”的核心是系统掌握HTTP/1.1通用、请求、响应、实体、Cookie及原书列出的扩展首部字段。真正掌握不止是认出术语,而是能让一条请求在消息、连接、中介、表示、身份和攻击边界之间闭环,并用失败实验说明边界一旦被破坏会发生什么。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 端到端首部
必须转发到最终接收者并由端点解释的首部。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 逐跳首部
只在相邻两节点间有效,不应由代理继续转发的首部。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 条件请求
用If-Match、If-None-Match等验证器约束方法执行的请求。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- 实体首部
描述报文所携带表示的媒体类型、长度、编码、语言和验证时间等元数据。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
- Cookie首部
服务器下发Set-Cookie、客户端回送Cookie形成的状态携带机制。掌握标准是能在原始请求或响应中定位它,并构造一条最小反例。
← 上一页:第5章 与HTTP协作的Web服务器 · 下一页:第7章 确保Web安全的HTTPS →
原版目录概念补充核对
以下条目补齐官方目录中容易被示例主线掩盖的概念。它们不重复罗列目录,而是明确每项概念的机制、适用边界和验收证据。
6.2 HTTP首部字段:机制、边界与证据
第6章 HTTP首部中的6.2 HTTP首部字段会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.2.1 HTTP首部字段传递重要信息:机制、边界与证据
第6章 HTTP首部中的6.2.1 HTTP首部字段传递重要信息会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.2.2 HTTP首部字段结构:机制、边界与证据
第6章 HTTP首部中的6.2.2 HTTP首部字段结构会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.2.3 4种HTTP首部字段类型:机制、边界与证据
第6章 HTTP首部中的6.2.3 4种HTTP首部字段类型会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.2.4 HTTP/1.1首部字段一览:机制、边界与证据
第6章 HTTP首部中的6.2.4 HTTP/1.1首部字段一览会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.2.5 非HTTP/1.1首部字段:机制、边界与证据
第6章 HTTP首部中的6.2.5 非HTTP/1.1首部字段会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.2.6 End-to-end首部和Hop-by-hop首部:机制、边界与证据
第6章 HTTP首部中的6.2.6 End-to-end首部和Hop-by-hop首部会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.3 HTTP/1.1通用首部字段:机制、边界与证据
第6章 HTTP首部中的6.3 HTTP/1.1通用首部字段会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.3.1 Cache-Control:机制、边界与证据
第6章 HTTP首部中的6.3.1 Cache-Control描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.2 Connection:机制、边界与证据
第6章 HTTP首部中的6.3.2 Connection描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.3 Date:机制、边界与证据
第6章 HTTP首部中的6.3.3 Date描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.4 Pragma:机制、边界与证据
第6章 HTTP首部中的6.3.4 Pragma描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.5 Trailer:机制、边界与证据
第6章 HTTP首部中的6.3.5 Trailer描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.6 Transfer-Encoding:机制、边界与证据
第6章 HTTP首部中的6.3.6 Transfer-Encoding描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.7 Upgrade:机制、边界与证据
第6章 HTTP首部中的6.3.7 Upgrade描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.8 Via:机制、边界与证据
第6章 HTTP首部中的6.3.8 Via描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.3.9 Warning:机制、边界与证据
第6章 HTTP首部中的6.3.9 Warning描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4 请求首部字段:机制、边界与证据
第6章 HTTP首部中的6.4 请求首部字段要放进一次完整 HTTP 交换中判断:请求行与首部给出前置条件,状态码和响应首部说明处理结果,消息体承载表示。复核时保存原始报文并改变方法、资源状态或连接复用条件,确认客户端、代理与服务端对语义的解释一致。
6.4.1 Accept:机制、边界与证据
第6章 HTTP首部中的6.4.1 Accept描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.2 Accept-Charset:机制、边界与证据
第6章 HTTP首部中的6.4.2 Accept-Charset描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.3 Accept-Encoding:机制、边界与证据
第6章 HTTP首部中的6.4.3 Accept-Encoding描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.4 Accept-Language:机制、边界与证据
第6章 HTTP首部中的6.4.4 Accept-Language描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.5 Authorization:机制、边界与证据
第6章 HTTP首部中的6.4.5 Authorization描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.6 Expect:机制、边界与证据
第6章 HTTP首部中的6.4.6 Expect描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.7 From:机制、边界与证据
第6章 HTTP首部中的6.4.7 From描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.8 Host:机制、边界与证据
第6章 HTTP首部中的6.4.8 Host描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.9 If-Match:机制、边界与证据
第6章 HTTP首部中的6.4.9 If-Match描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.10 If-Modified-Since:机制、边界与证据
第6章 HTTP首部中的6.4.10 If-Modified-Since描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.11 If-None-Match:机制、边界与证据
第6章 HTTP首部中的6.4.11 If-None-Match描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.12 If-Range:机制、边界与证据
第6章 HTTP首部中的6.4.12 If-Range描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.13 If-Unmodified-Since:机制、边界与证据
第6章 HTTP首部中的6.4.13 If-Unmodified-Since描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.14 Max-Forwards:机制、边界与证据
第6章 HTTP首部中的6.4.14 Max-Forwards描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.15 Proxy-Authorization:机制、边界与证据
第6章 HTTP首部中的6.4.15 Proxy-Authorization描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.16 Range:机制、边界与证据
第6章 HTTP首部中的6.4.16 Range描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.17 Referer:机制、边界与证据
第6章 HTTP首部中的6.4.17 Referer描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.18 TE:机制、边界与证据
第6章 HTTP首部中的6.4.18 TE描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.4.19 User-Agent:机制、边界与证据
第6章 HTTP首部中的6.4.19 User-Agent描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5 响应首部字段:机制、边界与证据
第6章 HTTP首部中的6.5 响应首部字段要放进一次完整 HTTP 交换中判断:请求行与首部给出前置条件,状态码和响应首部说明处理结果,消息体承载表示。复核时保存原始报文并改变方法、资源状态或连接复用条件,确认客户端、代理与服务端对语义的解释一致。
6.5.1 Accept-Ranges:机制、边界与证据
第6章 HTTP首部中的6.5.1 Accept-Ranges描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.2 Age:机制、边界与证据
第6章 HTTP首部中的6.5.2 Age描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.3 ETag:机制、边界与证据
第6章 HTTP首部中的6.5.3 ETag描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.4 Location:机制、边界与证据
第6章 HTTP首部中的6.5.4 Location描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.5 Proxy-Authenticate:机制、边界与证据
第6章 HTTP首部中的6.5.5 Proxy-Authenticate描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.6 Retry-After:机制、边界与证据
第6章 HTTP首部中的6.5.6 Retry-After描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.7 Server:机制、边界与证据
第6章 HTTP首部中的6.5.7 Server描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.8 Vary:机制、边界与证据
第6章 HTTP首部中的6.5.8 Vary描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.5.9 WWW-Authenticate:机制、边界与证据
第6章 HTTP首部中的6.5.9 WWW-Authenticate描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6 实体首部字段:机制、边界与证据
第6章 HTTP首部中的6.6 实体首部字段会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.6.1 Allow:机制、边界与证据
第6章 HTTP首部中的6.6.1 Allow描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.2 Content-Encoding:机制、边界与证据
第6章 HTTP首部中的6.6.2 Content-Encoding描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.3 Content-Language:机制、边界与证据
第6章 HTTP首部中的6.6.3 Content-Language描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.4 Content-Length:机制、边界与证据
第6章 HTTP首部中的6.6.4 Content-Length描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.5 Content-Location:机制、边界与证据
第6章 HTTP首部中的6.6.5 Content-Location描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.6 Content-MD5:机制、边界与证据
第6章 HTTP首部中的6.6.6 Content-MD5描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.7 Content-Range:机制、边界与证据
第6章 HTTP首部中的6.6.7 Content-Range描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.8 Content-Type:机制、边界与证据
第6章 HTTP首部中的6.6.8 Content-Type描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.9 Expires:机制、边界与证据
第6章 HTTP首部中的6.6.9 Expires描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.6.10 Last-Modified:机制、边界与证据
第6章 HTTP首部中的6.6.10 Last-Modified描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.7 为Cookie服务的首部字段:机制、边界与证据
第6章 HTTP首部中的6.7 为Cookie服务的首部字段会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.7.1 Set-Cookie:机制、边界与证据
第6章 HTTP首部中的6.7.1 Set-Cookie涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
6.7.2 Cookie:机制、边界与证据
第6章 HTTP首部中的6.7.2 Cookie涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
6.8 其他首部字段:机制、边界与证据
第6章 HTTP首部中的6.8 其他首部字段会改变中间节点如何转发、缓存或变换表示;字段值必须与适用方向、缓存键和端到端/逐跳边界一起解释。可用两次可重复请求对照命中状态、报文首部与实际字节,避免只凭浏览器最终页面判断。
6.8.1 X-Frame-Options:机制、边界与证据
第6章 HTTP首部中的6.8.1 X-Frame-Options描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.8.2 X-XSS-Protection:机制、边界与证据
第6章 HTTP首部中的6.8.2 X-XSS-Protection涉及身份、机密性或输入信任边界,不能把“使用 HTTPS”或“已经登录”当作完整安全证明。应分别验证握手/证书、凭据传递、会话属性、授权拒绝和恶意输入,并检查敏感信息是否进入 URL、日志或可被脚本读取的存储。
6.8.3 DNT:机制、边界与证据
第6章 HTTP首部中的6.8.3 DNT描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。
6.8.4 P3P:机制、边界与证据
第6章 HTTP首部中的6.8.4 P3P描述 Web 组件之间的一项可观察契约。先写出发送方、接收方和中间节点各自保存的状态,再以一组成功报文和一组边界/拒绝报文核对字段、时序与最终表示,防止把实现习惯误认为协议保证。