ホームページ  >  記事  >  ウェブフロントエンド  >  新しい構造化フィールド RFC がリリースされ、私の Javascript パッケージも同様です

新しい構造化フィールド RFC がリリースされ、私の Javascript パッケージも同様です

Susan Sarandon
Susan Sarandonオリジナル
2024-10-05 10:39:02885ブラウズ

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>




なぜ気にする必要があるのですか?

実際にこれらのヘッダーに遭遇した場合は、標準のパーサーを使用することをお勧めします。その理由の 1 つは、構造化フィールドを使用すると、組み込みの拡張メカニズムがあることです。新しいパラメーターが出現したときに、アプリケーションが突然中断しないようにする必要があります。

独自の HTTP ヘッダーを定義して使用することもできます。構造化フィールド形式は、「キー値オブジェクトをどのようにエンコードするか」や「UTF-8 文字列をどのようにエンコードするか」などの決定を不要にする、非常に優れた「デフォルトの選択肢」です。

すべての言語にパーサーが表示されるため、独自の 1 回限りの形式を作成することを心配する必要はありません。

JavaScript パッケージ

私は、「構造化ヘッダー」と呼ばれる構造化フィールド用の Javascript ライブラリのメンテナです。このライブラリも、この新しい RFC に合わせて更新しました。 「構造化フィールド」という名前を付ければよかったですが、元の標準によって名前が変更される前にこの名前を選びました。

これらの新しいタイプをサポートするこのライブラリの v2 をリリースし、ES モジュールのサポートも追加しました。

コメント?

次のいずれかに返信してください:

  • [マストドン投稿][4]
  • [青空投稿][5]

以上が新しい構造化フィールド RFC がリリースされ、私の Javascript パッケージも同様ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。