Apa itu HTTP / 2 dan Apa yang Dilakukannya?



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Dalam 20 tahun terakhir, World Wide Web telah berkembang secara dramatik. Semua teknologi web yang ditingkatkan memerlukan penyelesaian dan protokol yang lebih baik dan pantas untuk komunikasi dan pemindahan fail daripada yang semasa (HTTP) yang mencapai had teknologi mereka.





Apa itu HTTP / 2?

HTTP / 2 adalah versi terbaru Hypertext Transport Protocol (HTTP) - protokol asas yang digunakan oleh World Wide Web . Pada mulanya diluluskan pada Februari 2015. Itu hampir 20 tahun selepas HTTP asal. HTTP / 2 mengurangkan masa muat dan membawa peningkatan besar dalam komunikasi antara pelayan dan penyemak imbas. Sebilangan besar penyemak imbas sudah menambahkan HTTP / 2, dan itu tidak mengubah banyak perkara dari perspektif pengguna. Itulah sebab utama mengapa ramai daripada kita belum membaca atau mendengarnya.



Apa yang HTTP / 2 Lakukan?

Sebagai pengganti HTTP, HTTP / 2 memberi tumpuan kepada peningkatan semua ciri HTTP . Untuk mengekalkan keserasian kebelakang dengan protokol lama, ia menyimpan sebahagian besar fungsi HTTP. Walau bagaimanapun, ia memperkenalkan beberapa peningkatan yang drastik.

Kedua-dua HTTP atau HTTP / 2 menentukan:

  • Tindakan mana yang perlu diambil oleh penyemak imbas dan pelayan web sebagai tindak balas terhadap perintah yang berbeza.
  • Bagaimana setiap bit maklumat dipindahkan dari satu ke komputer lain melalui web.
  • Bagaimana mesej dibuat, diformat dan dihantar.

Dengan kata lain, HTTP dan HTTP / 2 menetapkan standard bagaimana kandungan web dihantar ke komputer anda, dengan perbezaan bahawa HTTP / 2 membuat semua perkara lebih cepat daripada pendahulunya. Di sini anda dapat melihat apa yang dilakukan oleh HTTP / 2 secara terperinci.



Aliran Berganda

Siri dua arah bingkai format teks yang dihantar melalui protokol HTTP / 2 antara satu pelayan dan klien disebut 'aliran'. HTTP mampu menghantar hanya satu dari 'aliran' ini pada satu masa. Setelah aliran dihantar, terdapat kelewatan waktu antara penghantaran aliran seterusnya.

HTTP / 2 mewujudkan lapisan pembingkaian binari baru yang secara langsung menyelesaikan masalah dengan menghantar 'aliran' satu persatu. Ini membolehkan klien dan pelayan membubarkan payload HTTP / 2 menjadi urutan bingkai interleave yang kecil, bebas dan mudah dikendalikan. Semua maklumat ini dikumpulkan semula setelah diterima di hujung yang lain. Protokol ini membolehkan pertukaran urutan dua arah yang terbuka, serentak terbuka, dan bebas tanpa latensi antara aliran berturut-turut.

Faedah:

  • Permintaan dan tindak balas berbilang selari tidak saling menyekat.
  • Sambungan TCP tunggal dapat memastikan penggunaan sumber rangkaian yang berkesan walaupun menghantar banyak aliran data.
  • Prestasi web yang lebih pantas, pengurangan latensi, dan hasil enjin carian yang lebih baik.
  • Mengurangkan CapEx dan OpEx dalam menjalankan sumber rangkaian dan IT.

HTTP / 2 Server Push dan Cache Push

Ini adalah keupayaan yang membolehkan pelayan menghantar maklumat tambahan yang dapat disimpan dalam cache kepada pelanggan . Maklumat itu tidak diminta tetapi dijangka untuk permintaan yang akan datang. Sekiranya pelanggan meminta satu sumber A dan diketahui bahawa sumber B yang lain dirujuk dengan yang diminta, pelayan dapat mendorong B bersamaan dengan A dan bukannya menunggu permintaan pelanggan lain. Kemudian pelanggan menyimpan sumber B yang ditolak ke dalam cache untuk kegunaan masa depan. Ciri ini menjimatkan keseluruhan proses perjalanan pergi-balik dan mengurangkan kependaman rangkaian. Google pada awalnya memperkenalkan Server Push dalam protokol SPDY.

Peningkatan lain dalam HTTP / 2 adalah Cache Push. Ini secara proaktif mengemas kini atau membatalkan cache pelanggan. Ini memberikan kemampuan kepada pelayan untuk mengenal pasti kemungkinan sumber daya yang tidak dikehendaki oleh pelanggan.

Faedah:

  • Pelanggan boleh menolak sumber daya yang didorong untuk mengekalkan repositori sumber cache yang cekap (atau bahkan mematikan Server Push sepenuhnya).
  • Pelanggan dapat mengehadkan bilangan aliran yang didorong berlipat ganda secara serentak.
  • Pelayan boleh mengutamakan sumber yang didorong. Ini adalah kunci dalam perbezaan prestasi antara HTTP / 2 dan HTTP.
  • Pelayan boleh menggunakan sumber yang didorong multiplex bersama dengan maklumat yang diminta pelanggan dalam sambungan TCP yang sama.
  • Pelanggan boleh menggunakan sumber cache di halaman yang berbeza.
  • Pelanggan menyimpan sumber yang ditolak dalam memori cache.

Protokol Perduaan

HTTP / 2 telah meningkatkan keupayaan dengan ketara ketika mengubah protokol teks menjadi protokol binari . Walaupun HTTP digunakan untuk memproses perintah teks untuk menjalankan siklus permintaan-respons, HTTP / 2 bergantung pada perintah biner. Itu memendekkan masa (menjadi 1s dan 0s) untuk melaksanakan tugas yang sama.

Penyemak imbas dengan sokongan HTTP / 2 akan menukar perintah teks menjadi kod binari sebelum menghantarnya melalui rangkaian. Walau bagaimanapun, lapisan pembingkaian binari tidak serasi dengan pelayan dan pelanggan HTTP.

Faedah:

  • Mencegah masalah keselamatan yang berkaitan dengan sifat teks HTTP (mis. Serangan membelah serangan).
  • Membolehkan keupayaan HTTP / 2 seperti pemampatan, keutamaan, multiplexing, pengendalian TLS yang berkesan, dan kawalan aliran.
  • Perwakilan perintah yang ringkas yang membolehkan pelaksanaan dan pemprosesan lebih mudah.
  • Pemprosesan data yang kuat dan berkesan antara pelanggan dan pelayan.
  • Hasil yang lebih baik dan pengurangan latensi rangkaian.
  • Lebih sedikit peluang untuk kesilapan jika dibandingkan dengan HTTP.
  • Penggunaan sumber rangkaian yang sangat cekap.
  • Overhead rendah dalam menguraikan data.
  • Jejak rangkaian yang lebih ringan.

Keutamaan Aliran

HTTP / 2 membolehkan pelanggan memberikan pilihan kepada aliran data tertentu. Pelayan tidak terikat untuk mengikuti arahan klien ini, tetapi mekanisme ini membolehkan pelayan mengoptimumkan peruntukan sumber rangkaian berdasarkan keperluan pengguna .

Keutamaan Aliran berfungsi dengan Berat dan Ketergantungan yang ditugaskan untuk setiap aliran. Walaupun pada hakikatnya semua aliran bergantung pada satu sama lain kecuali, mereka mempunyai berat yang ditetapkan antara 1 dan 256. Mekanisme keutamaan aliran masih menjadi topik perbahasan. Walau bagaimanapun, apabila Prioriti Arus digabungkan dengan kemampuan HTTP / 2 memproses banyak aliran data dalam satu sambungan TCP, dapat menyebabkan kedatangan serentak permintaan pelayan dengan keutamaan yang berbeza.

Faedah:

  • Mengurangkan kesan negatif kebimbangan kependaman rangkaian.
  • Pengalaman pengguna yang lebih baik dan kelajuan pemuatan halaman.
  • Pengoptimuman dalam komunikasi data antara pelayan dan pelanggan.
  • Penggunaan sumber rangkaian yang sangat berkesan.
  • Masa penghantaran dikurangkan untuk permintaan kandungan utama.

Pemampatan Header Negeri

Apabila pengguna melayari laman web yang kaya dengan media, menggunakan HTTP, pelanggan mendorong beberapa bingkai tajuk yang hampir sama. Ini berlaku kerana setiap permintaan pelanggan mesti merangkumi seberapa banyak maklumat yang diperlukan oleh pelayan untuk menjalankan operasi yang diminta. Proses ini membawa kepada kependaman dan penggunaan sumber yang tidak perlu.

HTTP / 2 merangkumi kemampuan untuk memampatkan sejumlah besar bingkai tajuk yang berlebihan. Ia bergantung pada spesifikasi HPACK sebagai pendekatan yang selamat dan mudah untuk pemampatan header . Pelanggan dan pelayan mengekalkan senarai tajuk yang digunakan dalam permintaan pelayan pelanggan sebelumnya. Ini secara langsung mengatasi masalah dengan bingkai tajuk yang berlebihan.

Faedah:

  • Mengekod tajuk yang biasa digunakan dan tajuk besar. Itu menghilangkan keperluan untuk menghantar keseluruhan bingkai header. Saiz individu setiap aliran menyusut dengan ketara.
  • Mencegah serangan keselamatan seperti CRIME meneroka aliran data dengan header yang dimampatkan.
  • Penggunaan mekanisme multiplexing yang cekap.
  • Keutamaan aliran yang cekap.
  • Overhead sumber berkurang.

Faedah Dunia Sebenar HTTP / 2

HTTP / 2 difokuskan untuk memaksimumkan potensi teknologi , untuk memenuhi keperluan dan harapan masa depan. Berikut adalah faedah dunia nyata menggunakan HTTP / 2.

Persembahan Web dan Prestasi Web Mudah Alih - HTTP / 2 mempunyai kemampuan untuk mengirim dan menerima lebih banyak data dalam satu kitaran komunikasi pelayan-pelanggan. Ia berfungsi dengan baik untuk mengurangkan kependaman dalam mengakses perkhidmatan internet di rangkaian dan rangkaian data mudah alih dengan lebar jalur terhad setiap pengguna.

Internet Berkelajuan Tinggi Lebih Murah - HTTP / 2 meningkatkan keberkesanan komunikasi data. Itu membolehkan penyedia internet mengecilkan perbelanjaan keseluruhan sambil mengekalkan standard internet berkelajuan tinggi.

Keselamatan - HTTP / 2 tidak rentan terhadap ancaman yang menargetkan protokol lapisan aplikasi berbasis teks. Lebih jauh lagi, ia menggunakan pendekatan 'Security by Obscurity' untuk melindungi penghantaran data sensitif antara klien dan pelayan.

Jangkauan yang luas - Kelebihan HTTP / 2 mengurangkan hasil internet untuk penyedia. Itu akan membawa kepada liputan internet yang lebih luas di peringkat seluruh dunia.

Pengalaman Web Kaya Media - Ciri dan kelebihan teknologi yang dibawa HTTP / 2 ke World Wide Web menyediakan infrastruktur yang mampu menyampaikan kandungan kaya media pada kelajuan pemuatan halaman yang lebih pantas.

Kemaskan

HTTP / 2 adalah protokol yang agak baru, tetapi sokongan untuknya terus bertambah. Pada masa kini, kebanyakan penyemak imbas internet menyokong HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome untuk Android). Banyak pelayan web termasuk sokongan asli HTTP / 2 (Apache HTTP Server, Tomcat, NGINX). Tanpa keraguan, HTTP / 2 adalah protokol WWW masa depan.

5 minit membaca