Rumah  >  Artikel  >  hujung hadapan web  >  Medan Berstruktur Baharu RFC keluar, dan begitu juga pakej Javascript saya

Medan Berstruktur Baharu RFC keluar, dan begitu juga pakej Javascript saya

Susan Sarandon
Susan Sarandonasal
2024-10-05 10:39:02884semak imbas

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

RFC baharu telah dikeluarkan untuk Medan Berstruktur: RFC9651.

Apa itu?

Pengepala HTTP telah menjadi sedikit percuma untuk semua dari segi betapa kompleksnya nilai
dikodkan, dengan banyak pengepala memerlukan penghurai mini mereka sendiri.

Sebentar tadi usaha telah dimulakan untuk membetulkannya untuk pengepala ke hadapan, yang dinamakan 'Medan Berstruktur'. Ia dipanggil Medan dan bukan 'Pengepala' kerana HTTP mempunyai Pengepala dan Treler!

Medan berstruktur membolehkan anda mengekod perkara seperti senarai, kamus, rentetan, nombor, boolean dan data binari. RFC asal dari 2021 cukup berjaya dan walaupun banyak pengepala sedia ada tidak boleh dipasang semula kepada format ini, banyak piawaian baharu mengambil kesempatan.

Beberapa contoh:


// 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 baharu yang diterbitkan minggu lepas menambah 2 jenis data baharu: Tarikh dan
'Rentetan paparan', iaitu siri Unicode yang sesuai dalam format pengepala HTTP (dan treler).

// 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>




Mengapa anda perlu mengambil berat?

Jika anda menemui pengepala ini di alam liar, adalah idea yang bagus untuk menggunakan penghurai standard. Salah satu sebabnya ialah dengan menggunakan medan berstruktur, terdapat mekanisme sambungan terbina dalam. Anda perlu memastikan bahawa apabila parameter baharu muncul aplikasi anda tidak tiba-tiba pecah.

Anda juga mungkin mahu menentukan dan menggunakan pengepala HTTP anda sendiri. Format medan berstruktur ialah 'pilihan lalai' yang sangat baik yang mengalih keluar keputusan seperti 'Bagaimanakah saya harus mengekod objek nilai utama' atau 'bagaimana hendak mengekod rentetan UTF-8'.

Dengan penghurai yang muncul untuk setiap bahasa, anda tidak perlu risau tentang menulis format sekali sahaja anda.

Pakej Javascript

Saya ialah penyelenggara perpustakaan Javascript untuk Medan Berstruktur, yang dipanggil "pengepala berstruktur", yang juga saya kemas kini untuk RFC baharu ini. Saya harap saya memilih nama "medan berstruktur", tetapi saya memilih nama itu sebelum standard asal menukar namanya.

Saya baru sahaja mengeluarkan v2 perpustakaan ini yang menyokong jenis baharu ini, dan turut menambah sokongan Modul ES.

Komen?

Balas salah satu daripada ini:

  • [Siaran Mastodon][4]
  • [Bluesky post][5]

Atas ialah kandungan terperinci Medan Berstruktur Baharu RFC keluar, dan begitu juga pakej Javascript saya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn