跳到主要内容

2. Content-Digest 字段

Content-Digest HTTP 字段可用于请求和响应, 用来传达通过把哈希算法应用于实际消息内容而计算出的摘要 (see Section 6.4 of [HTTP]). 它是一个 Dictionary (see Section 3.2 of [STRUCTURED-FIELDS]), 其中每个:

  • key 传达用于计算摘要的哈希算法 (see Section 5);

  • value 是 Byte Sequence (Section 3.3.5 of [STRUCTURED-FIELDS]), 传达摘要计算所产生字节输出的编码版本.

例如:

NOTE: '' 按 RFC 8792 进行行包装

Content-Digest: \
sha-512=:YMAam51Jz/jOATT6/zvHrLVgOYTGFy1d6GJiOHTohq4yP+pgk4vf2aCs\
yRZOtw8MjkM7iw7yZ/WkppmM44T3qg==:

Dictionary 类型可用于附加多个使用不同哈希算法计算出的摘要, 例如为了支持一组能力不同或不断演进的端点. 这种方法可以支持从较弱算法迁移出去 (see Section 6.6).

NOTE: '' 按 RFC 8792 进行行包装

Content-Digest: \
sha-256=:d435Qo+nKZ+gLcUHn7GQtQ72hiBVAgqoLsZnZPiTGPk=:,\
sha-512=:YMAam51Jz/jOATT6/zvHrLVgOYTGFy1d6GJiOHTohq4yP+pgk4vf2aCs\
yRZOtw8MjkM7iw7yZ/WkppmM44T3qg==:

接收方 MAY 忽略任意一个或全部摘要. 特定于应用的行为或本地策略 MAY 对所传达摘要的处理和验证实践设置附加约束. 安全考虑事项涵盖了与忽略摘要 (see Section 6.6) 和验证多个摘要 (see Section 6.7) 相关的一些问题.

发送方 MAY 在不知道接收方是否支持给定哈希算法的情况下发送摘要. 若发送方知道接收方会忽略摘要, 也 MAY 发送摘要.

Content-Digest 可以在尾部节中发送. 在这种情况下, Content-Digest MAY 合并到头部节中; 参见 Section 6.5.1 of [HTTP].