Apa itu ALPN?
Bagi yang ingin menggunakan HTTP/2 pada websitenya mungkin akan menemukan implementasinya kurang sempurna dan malah tetap memakai HTTP/1.1 untuk koneksinya. Masalah ini bisa disebabkan tidak adanya ALPN yang akan dijadikan wajib oleh Google Chrome dalam waktu dekat ini. Nah… apakah ALPN ini? Dan bagaimana hubungannya dengan NPN?
Apa itu ALPN? Jadi Application Layer Negotiation Protocol adalah protokol komunikasi dalam HTTP/2 untuk menentukan layer aplikasi yang akan digunakan. Nanti akan dilihat bisanya apa. Dari polosan HTTP/1.1, SPDY atau HTTP/2 dalam transfer datanya. Ini terjadi setelah sambungan SSL/TLS terjadi.
Apa itu NPN? Sedangkan Next Protocol Negotiation adalah protokol yang berfungsi memilih application layer dalam koneksi HTTPS dan lazim digunakan dalam SPDY. Apa perbedaan ALPN dengan NPN? Intinya sama dengan ALPN, tapi keunggulan ALPN itu mengurangi satu langkah kerja dimana si klien (browser umumnya) akan memberikan daftar cipher enkripsi atau protokol yang didukung. Ya mudahnya ALPN ini adalah protokol baru yang fungsinya menggantikan NPN. Lengkapnya bisa dibaca pada slide IETF ini: https://www.ietf.org/proceedings/88/slides/slides-88-httpbis-1.pdf
Jadi walaupun menurut anda sudah mengaktifkan HTTP/2 pada web servernya – seperti Nginx, OpenLiteSpeed, Apache dan sebagainya – belum tentu memang sudah berfungsi sesuai yang diinginkan. Anda bisa mengetes sendiri apakah koneksi HTTPS situs anda memang sudah mendukung HTTP/2.
Tambahan juga, pembahasan kali terinspirasi dari pertanyaan mas Budi dimana ALPN tidak ada karena versi Nginxnya tidak dicompile dengan OpenSSL minimal versi 1.0.2. Solusinya ya Rakyatnesia compile sendiri dari source code dengan OpenSSL versi tersebut atau cari repository lain.