Protokol HTTP/3.0 menerima status standar yang diusulkan

IETF (Internet Engineering Task Force), yang bertanggung jawab atas pengembangan protokol dan arsitektur Internet, telah menyelesaikan pembentukan RFC untuk protokol HTTP/3.0 dan menerbitkan spesifikasi terkait di bawah pengidentifikasi RFC 9114 (protokol) dan RFC 9204 ( Teknologi kompresi header QPACK untuk HTTP/3) . Spesifikasi HTTP/3.0 telah menerima status "Standar yang Diusulkan", setelah itu pekerjaan akan mulai memberikan RFC status rancangan standar (Draf Standar), yang sebenarnya berarti stabilisasi lengkap protokol dan mempertimbangkan semua komentar yang dibuat. Pada saat yang sama, versi terbaru dari spesifikasi untuk protokol HTTP/1.1 (RFC 9112) dan HTTP/2.0 (RFC 9113) diterbitkan, serta dokumen yang mendefinisikan semantik permintaan HTTP (RFC 9110) dan header kontrol cache HTTP (RFC 9111).

Protokol HTTP/3 mendefinisikan penggunaan protokol QUIC (Quick UDP Internet Connections) sebagai transport untuk HTTP/2. QUIC adalah perpanjangan dari protokol UDP yang mendukung multiplexing beberapa koneksi dan menyediakan metode enkripsi yang setara dengan TLS/SSL. Protokol ini dibuat pada tahun 2013 oleh Google sebagai alternatif kombinasi TCP+TLS untuk Web, memecahkan masalah penyiapan koneksi yang lama dan waktu negosiasi di TCP serta menghilangkan penundaan saat paket hilang selama transfer data.

Protokol HTTP/3.0 menerima status standar yang diusulkan

Saat ini, dukungan QUIC dan HTTP/3.0 sudah diterapkan di semua browser web populer (di Chrome, Firefox, dan Edge, dukungan HTTP/3 diaktifkan secara default, dan di Safari memerlukan pengaturan “Lanjutan > Fitur Eksperimental > HTTP/3” untuk diaktifkan). Di sisi server, implementasi HTTP/3 tersedia untuk nginx (dalam cabang terpisah dan dalam bentuk modul terpisah), Caddy, IIS dan LiteSpeed. Dukungan HTTP/3 juga disediakan oleh jaringan pengiriman konten Cloudflare.

Fitur utama QUIC:

  • Keamanan tinggi mirip dengan TLS (pada dasarnya QUIC menyediakan kemampuan untuk menggunakan TLS melalui UDP);
  • Kontrol integritas aliran, mencegah kehilangan paket;
  • Kemampuan untuk membuat koneksi secara instan (0-RTT, pada sekitar 75% kasus, data dapat dikirim segera setelah mengirim paket pengaturan koneksi) dan memberikan penundaan minimal antara pengiriman permintaan dan penerimaan respons (RTT, Round Trip Time);
    Protokol HTTP/3.0 menerima status standar yang diusulkan
  • Menggunakan nomor urut yang berbeda saat mengirimkan ulang sebuah paket, yang menghindari ambiguitas dalam mengidentifikasi paket yang diterima dan menghilangkan batas waktu;
  • Hilangnya suatu paket hanya mempengaruhi pengiriman aliran yang terkait dengannya dan tidak menghentikan pengiriman data dalam aliran paralel yang dikirimkan melalui koneksi saat ini;
  • Fitur koreksi kesalahan yang meminimalkan penundaan akibat pengiriman ulang paket yang hilang. Penggunaan kode koreksi kesalahan khusus pada tingkat paket untuk mengurangi situasi yang memerlukan transmisi ulang data paket yang hilang.
  • Batas-batas blok kriptografi diselaraskan dengan batas-batas paket QUIC, yang mengurangi dampak kehilangan paket pada decoding isi paket berikutnya;
  • Tidak ada masalah dengan pemblokiran antrian TCP;
  • Dukungan untuk pengidentifikasi koneksi, yang mengurangi waktu yang diperlukan untuk membuat koneksi ulang untuk klien seluler;
  • Kemungkinan menghubungkan mekanisme kontrol kelebihan koneksi tingkat lanjut;
  • Menggunakan teknik prediksi throughput per arah untuk memastikan tingkat penerusan paket yang optimal, mencegah kemacetan dan kehilangan paket;
  • Peningkatan signifikan dalam kinerja dan throughput dibandingkan dengan TCP. Untuk layanan video seperti YouTube, QUIC telah terbukti mengurangi operasi rebuffering saat menonton video sebesar 30%.

Di antara perubahan dalam spesifikasi HTTP/1.1, kita dapat mencatat larangan penggunaan karakter carriage return (CR) secara terisolasi di luar isi konten, yaitu. Dalam elemen protokol, karakter CR hanya dapat digunakan bersama dengan karakter line feed (CRLF). Algoritme tata letak permintaan terpotong telah ditingkatkan untuk menyederhanakan pemisahan bidang dan bagian terlampir dengan header. Menambahkan rekomendasi untuk menangani konten ambigu guna memblokir serangan “Penyelundupan Permintaan HTTP”, yang memungkinkan kami memasukkan diri kami ke dalam konten permintaan pengguna lain dalam aliran antara frontend dan backend.

Pembaruan spesifikasi HTTP/2.0 secara eksplisit mendefinisikan dukungan untuk TLS 1.3. Tidak lagi menggunakan skema prioritas dan kolom header terkait. Mekanisme yang tidak digunakan untuk memperbarui koneksi dengan HTTP/1.1 telah dinyatakan usang. Mengurangi persyaratan untuk memeriksa nama dan nilai bidang. Beberapa jenis dan parameter bingkai yang telah dipesan sebelumnya diusulkan untuk digunakan. Bidang header terlarang yang terkait dengan koneksi didefinisikan dengan lebih tepat.

Sumber: opennet.ru

Tambah komentar