RFC baharu telah dikeluarkan untuk Medan Berstruktur: RFC9651.
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>
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.
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.
Balas salah satu daripada ini:
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!