首页 > web前端 > js教程 > 新的结构化字段 RFC 已发布,我的 Javascript 包也是如此

新的结构化字段 RFC 已发布,我的 Javascript 包也是如此

Susan Sarandon
发布: 2024-10-05 10:39:02
原创
922 人浏览过

New Structured Fields RFC out, and so is my Javascript package

针对结构化字段发布了新的 RFC:RFC9651。

它是什么?

HTTP 标头在值的复杂程度方面有点免费
被编码,许多标头需要自己的迷你解析器。

不久前,人们开始努力修复此问题,名为“结构化字段”。它们被称为字段而不是“标头”,因为 HTTP 同时具有标头和尾部!

结构化字段可让您对列表、字典、字符串、数字、布尔值和二进制数据等内容进行编码。 2021 年的原始 RFC 非常成功,尽管许多现有标头无法改造为这种格式,但许多新标准正在利用。

一些例子:


// Parsed an ASCII string
Header: "foo"

// A simple string, called a 'Token' in the spec
Header: foo

// Parsed as number
Header: 5
Header: -10
Header: 5.01415

// Parsed into boolean
Header: ?1
Header: ?0

// Binaries are base64 encoded
Header: :RE0gbWUgZm9yIGEgZnJlZSBjb29raWU=:

// Items can have parameters
Header: "Hello world"; a="5"

// A simple list
Header: 5, "foo", bar, ?1

# Each element can have parameters
Header: sometoken; param1; param2=hi, 42

// A list can also contain lists itself. These are called 'inner lists' and
// use parenthesis
Header: sometoken, (innerlistitem1 innerlistitem2), (anotherlist)

// A simple dictionary
Header: fn="evert", ln="pot", coffee=?1

// Each item may have parameters too
Header: foo=123; q=1, bar=123, q=0.5

// A dictionary value may be an inner list again
Header: foo=(1 2 3)


登录后复制

上周发布的新 RFC 添加了 2 个新数据类型:日期和
“显示字符串”,这是适合 HTTP 标头(和预告片)格式的 Unicode 序列化。

// Parsed into a Date object<br>
Header: @1686634251

<p>// A Unicode string, called a 'Display String' in the spec. They use<br>
// percent encoding, but encode a different set of characters than<br>
// URLs.<br>
Header %"Frysl%C3%A2n"<br>
</p>
登录后复制




你为什么要关心?

如果您在野外遇到这些标头,那么使用标准解析器确实是个好主意。原因之一是使用结构化字段有一个内置的扩展机制。您需要确保当出现新参数时您的应用程序不会突然崩溃。

您可能还想定义和使用您自己的 HTTP 标头。结构化字段格式是一个非常好的“默认选择”,它消除了“我应该如何编码键值对象”或“如何编码 UTF-8 字符串”等决策。

随着每种语言都会出现解析器,您不必担心编写自己的一次性格式。

JavaScript 包

我是结构化字段 Javascript 库(称为“结构化标头”)的维护者,我还针对这个新的 RFC 更新了该库。我希望我选择了“结构化字段”这个名称,但我在原始标准更改名称之前选择了这个名称。

我刚刚发布了该库的 v2,支持这些新类型,并且还添加了 ES 模块支持。

评论?

回复其中一项:

  • [乳齿象帖子][4]
  • [蓝天帖子][5]

以上是新的结构化字段 RFC 已发布,我的 Javascript 包也是如此的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板