Pengantar HTTP / 2

Pengantar

HTTP / 2 adalah revisi terbaru dari Protokol Transfer HyperText atau HTTP [01], yang digunakan oleh browser untuk berkomunikasi dengan server web. Berasal dari SPDY yang lebih lama [02] protokol, HTTP / 2 adalah versi baru pertama HTTP sejak standarisasi HTTP / 1.1 di RFC 2068 pada tahun 1997.

Ini dikembangkan oleh kelompok kerja HTTP Internet Engineering Task Force (IETF) httpbis (di mana "bis" berarti "dua kali"), dan diterbitkan sebagai RFC 7540 [03] Mei 2015.

Adopsi HTTP / 2

HTTP / 2 telah semakin diadopsi oleh situs web yang berfungsi sejak publikasi resminya. Layanan survei online W3Techs [04] mencatat bahwa dari September 2017 hingga September 2018, dukungan HTTP / 2 naik dari 16% menjadi 30% dari semua situs web yang dipantau.

Selain itu, browser utama (misalnya Chrome, Firefox, Edge, dll) sudah memberikan dukungan penuh untuk HTTP / 2 [05]. (Beberapa bahkan mengembangkan implementasi eksperimental sebelum HTTP / 2 diterima sebagai standar.)

Adopsi yang luas ini berarti bahwa HTTP / 2 memiliki potensi untuk menjadi protokol komunikasi de facto Web.

Motivasi di balik HTTP / 2

Httpbis'piagam [06] menyebutkan beberapa komponen HTTP / 1.1 yang dapat ditingkatkan sebagai motivasi untuk HTTP / 2. Namun, tujuan utama grup adalah untuk mengurangi latensi yang dirasakan oleh pengguna akhir.

Untuk melakukan ini, httpbis dianggap meminimalkan overhead bandwidth melalui kompresi header dan teknik prefetching yang agresif (mis. push server), sementara pada saat yang sama mencoba untuk secara sistematis mengatasi masalah kinerja yang diketahui seperti kemacetan koneksi dan masalah pemblokiran Head-of-Line (HoL) [07].

Selain itu, HTTP / 2 diperlukan untuk kompatibel dengan mundur, artinya harus menggunakan kata kerja metode yang sama, kode status, URI, dan (kebanyakan) bidang header ditemukan di HTTP / 1.1. HTTP / 2 juga harus dirancang untuk mendukung kasus penggunaan HTTP yang umum, seperti browser web dan desktop, antarmuka pemrograman, proksi, dan firewall.

Untuk menjaga kompatibilitas ini, kelompok kerja mengembangkan mekanisme negosiasi protokol yang akan memungkinkan klien dan server untuk memilih antara HTTP / 1.1, HTTP / 2, atau bahkan protokol non-HTTP.

Jadi apa yang baru di HTTP / 2?

HTTP / 2 masih menggunakan skema URI dan nomor port yang sama yang digunakan dalam HTTP / 1.1 (yaitu port 80 untuk http URI, dan port 443 untuk https URI), tetapi banyak hal dilakukan secara berbeda di bawah tenda.

Perubahan paling mendasar adalah pengenalan frame sebagai unit data dasar HTTP / 2.

HTTP / 1.1 biasanya digunakan paket untuk mewakili data jaringan. Klien membangun paket permintaan dengan kata kerja metode (mis GET or POST), menambahkan daftar header yang menjelaskan koneksi, dan badan yang berisi data aplikasi.

Setelah menerima paket permintaan, server HTTP / 1.1 merespons dengan paket respons serupa yang berisi informasi yang diminta. Akibatnya, setiap siklus permintaan dan respons memerlukan koneksi baru.

Sebaliknya, klien HTTP / 2 membuat koneksi jaringan tunggal dengan server, yang mereka gunakan untuk semua komunikasi jaringan berikutnya. Header, data pengguna, pesan kesalahan, dan informasi semacam itu dikemas ke dalam struktur data biner yang berbeda yang disebut frame, sebelum dikirim melalui jaringan.

Ini sepertinya perubahan kecil, tetapi membawa implikasi yang signifikan.

Kompresi header

Manfaat besar menggunakan frame adalah bahwa HTTP / 2 header dikemas ke dalam a HEADER bingkai, yang dapat dikompresi menggunakan metode kompresi normal. Header harus ditransfer sebelum data apa pun, sehingga kompresi header dapat mengurangi overhead bandwidth yang dikenakan oleh HTTP / 2.

Kompresi header, bersama dengan peningkatan kinerja berikut fitur HTTP / 2, dapat sangat berguna dalam aplikasi mobile atau internet-of-things (IOT), di mana penggunaan jaringan minimal diperlukan.

Streaming dan multiplexing

Urutan independen dari kerangka semantik yang relevan disebut a aliran. Streaming diberi pengidentifikasi unik oleh titik akhir (yaitu klien atau server) yang membuatnya, sehingga titik akhir lainnya dapat membedakan di antaranya.

Endpoint dapat menyisipkan bingkai dari beberapa aliran melalui koneksi HTTP / 2 yang sama, memungkinkan koneksi jaringan tunggal untuk mendukung beberapa aliran terbuka secara bersamaan. Proses ini disebut multiplexing [08].

Menggunakan kembali koneksi yang sama mengurangi masalah seperti kemacetan koneksi dan masalah HoL yang disebutkan sebelumnya, dan menawarkan kinerja yang lebih baik dan pengalaman pengguna yang lebih lancar daripada versi HTTP sebelumnya.

Ketergantungan dan prioritas aliran

Mengelola beberapa aliran bersamaan berarti bahwa beberapa aliran akan diproses sebelum yang lain. HTTP / 2 memungkinkan pengembang (atau administrator) untuk menyempurnakan perilaku ini dengan fitur yang disebut ketergantungan aliran.

Aliran dapat bergantung pada transfer lengkap aliran lain sebelum ditangani. Misalnya, di situs tempat konten utama halaman web harus dimuat sebelum rekomendasi untuk konten serupa, HTTP / 2 memungkinkan aliran rekomendasi dibuat tergantung pada aliran konten utama.

HTTP / 2 juga mendukung prioritisasi aliran. Artinya, setiap aliran dapat diberi prioritas untuk menyarankan seberapa mendesak titik akhir harus mengalokasikan sumber daya untuk menangani bingkai aliran.

Prioritas dan ketergantungan streaming membantu pengembang dan pemilik situs web mengoptimalkan penggunaan jaringan situs mereka, yang dapat meningkatkan pengalaman pengguna situs mereka secara signifikan.

Server push

Terakhir, HTTP / 2 dapat meningkatkan kinerja situs web dengan menyediakan fungsionalitas "push". Server web HTTP / 2 dapat merespons dengan data untuk lebih banyak kueri daripada yang diminta klien sebelumnya. Hal ini memungkinkan server untuk memasok data yang diketahui bahwa browser web perlu merender halaman, tanpa menunggu browser memeriksa respons pertama, dan dengan demikian tanpa beban siklus permintaan tambahan.

Server push memberi pengembang kendali penuh atas jumlah permintaan yang diperlukan peramban untuk merender situs web mereka. Ketika digunakan dengan benar, fitur ini dapat meminimalkan overhead jaringan.

Tentu saja, penyalahgunaan fitur push juga dapat menghabiskan lebih banyak bandwidth daripada yang sebenarnya diperlukan. Karena alasan ini, HTTP / 2 memungkinkan klien untuk meminta server push dinonaktifkan ketika pertama kali menegosiasikan koneksi.

Keamanan HTTP / 2

Jika Anda telah membaca sampai titik ini, seharusnya jelas bahwa pengembang HTTP / 2 benar-benar berupaya meningkatkan kinerja. Namun, perlu dicatat bahwa HTTP / 2 juga dapat membantu meningkatkan keamanan pengguna browser secara keseluruhan.

Lebih khusus lagi, HTTP / 2 didefinisikan untuk kedua URI HTTP (yaitu tanpa enkripsi) dan HTTPS URIs (berakhir TLS saluran terenkripsi). Meskipun standar itu sendiri tidak memerlukan penggunaan enkripsi, semua implementasi browser utama (yaitu Firefox [09], Chrome, Safari, Opera, IE, Edge) telah memutuskan untuk melakukannya hanya mendukung HTTP / 2 lebih TLS.

Bahkan, browser membedakan antara HTTP-2 teks-jelas dan HTTP / 2 lebih terenkripsi TLS sebagai dua protokol yang berbeda. HTTP / 2 terenkripsi disebut h2 dan teks yang jelas h2c. Pada tulisan ini, tidak ada browser utama yang mendukung h2c , Yang berarti bahwa TLS enkripsi wajib untuk situs web untuk memanfaatkan keuntungan HTTP / 2 lainnya. Karenanya, ketika HTTP / 2 menjadi protokol jaringan web default, pemilik situs web lama yang belum meningkatkan ke SSL /TLS, akan sangat termotivasi untuk akhirnya melakukannya.

Kesimpulan

Adopsi HTTP / 2 yang meluas akan menghasilkan Web yang baru dan lebih baik. Lebih cepat, membutuhkan lebih sedikit bandwidth dan membantu situs web untuk tetap aman. Adopsi mainstream-nya pasti akan membuat pengalaman pengguna web secara keseluruhan lebih halus dan lebih aman.

Dapatkan sertifikat hari ini dan bergabunglah dengan kami di masa depan.

Referensi

  1. Protokol HTTP
  2. Protokol SPDY
  3. Spesifikasi HTTP / 2
  4. Survei adopsi W3Techs HTTP / 2
  5. Adopsi HTTP / 2 di browser
  6. Piagam httpbis
  7. Pemblokiran HOL
  8. Multiplexing
  9. Firefox pada HTTP / 2

Berlangganan Newsletter SSL.com

Jangan lewatkan artikel baru dan pembaruan dari SSL.com

Tetap Terinformasi dan Aman

SSL.com adalah pemimpin global dalam keamanan siber, PKI dan sertifikat digital. Daftar untuk menerima berita industri terkini, tips, dan pengumuman produk dari SSL.com.

Kami sangat menantikan tanggapan Anda

Ikuti survei kami dan beri tahu kami pendapat Anda tentang pembelian terakhir Anda.