跳到主要内容

2.1.1. Strict Serialization of HTTP Structured Fields (HTTP Structured Fields 的严格序列化)

2.1.1. Strict Serialization of HTTP Structured Fields (HTTP Structured Fields 的严格序列化)

若应用已知某 HTTP 字段的值为 Structured Field 类型 (定义见 [STRUCTURED-FIELDS] 或其扩展/更新) 且已知该 Structured Field 的预期类型, 签名者可以在组成部分标识符中包含 sf 参数. 若该参数随组成部分标识符一并出现, HTTP 字段值必须使用 [STRUCTURED-FIELDS] 第 4 节 (或其扩展/更新中适用的正式序列化节) 中针对该 HTTP 字段类型规定的正式序列化规则进行序列化. 注意该过程会将任意可选内部空白替换为单个空格字符, 还可能对值进行其他变换.

若消息中出现多个字段值, 这些值在序列化之前必须合并为单个 List 或 Dictionary 结构.

若应用不知道字段类型或不知道如何序列化该类型, 使用此标志将产生错误. 因此, 仅当验证者系统同样知道类型时, 签名者才能可靠地使用该标志对字段签名.

例如, 下列 Dictionary 字段是一种有效序列化:

Example-Dict: a=1, b=2;x=1;y=2, c=(a b c)

若不带参数纳入签名基, 其值为:

"example-dict": a=1, b=2;x=1;y=2, c=(a b c)

然而, 若添加 sf 参数, 值将按如下重新序列化:

"example-dict";sf: a=1, b=2;x=1;y=2, c=(a b c)

所得字符串用作组成部分值, 见第 2.1 节.