2. 定义新的结构化字段
规范作者可以将新的 HTTP field 定义为 Structured Field, 以便获得一致的解析, 序列化和错误处理行为. 这样做时, 字段定义需要明确引用本规范, 并声明该字段值使用的顶层类型, 例如 Item, List 或 Dictionary.
字段定义还需要说明该字段可以出现的位置, 例如 request, response, trailer 或这些位置的组合. 如果字段可以重复出现, 定义应说明收件人如何组合多个 field lines. 对 Structured Fields 而言, 多个 field lines 通常按 HTTP 字段组合规则合并后再解析.
每个结构化字段都应定义其成员, 参数和值的语义. 当字段使用 Integer, Decimal, String, Token, Byte Sequence 或 Boolean 等类型时, 规范应给出相应的取值约束和处理规则. 如果某些参数或成员是可选的, 应说明缺省行为.
字段定义不应依赖非结构化文本解析技巧. 如果需要表达多个值, 带参数的值或命名值集合, 应选择与语义匹配的结构化类型. 这样可以让通用 HTTP 软件安全地解析字段, 并让未来扩展有清晰位置.
字段规范还应说明未知参数, 未知成员和无效字段值的处理方式. 除非字段定义另有规定, 不能成功解析为指定 Structured Field 类型的值应视为无效.