All Products
Search
Document Center

Microservices Engine:Aktifkan HTTP/3 untuk gateway cloud-native

Last Updated:Mar 12, 2026

HTTP/3 menggantikan TCP dengan QUIC berbasis UDP untuk menghilangkan blokir kepala antrian (head-of-line blocking), mendukung migrasi koneksi saat berpindah jaringan, serta mengurangi latensi handshake melalui waktu round-trip nol (0-RTT). Peningkatan ini bermanfaat bagi pengguna seluler yang sering berganti antara jaringan Wi-Fi dan jaringan seluler, serta klien yang terhubung melalui koneksi berlatensi tinggi atau lossy.

Gateway cloud-native MSE menangani HTTP/3 di edge: klien terhubung melalui QUIC, sedangkan gateway meneruskan permintaan ke layanan backend melalui HTTP/1.1 atau HTTP/2. Layanan backend Anda tidak memerlukan perubahan apa pun. Dibandingkan dengan HTTP/3 end-to-end, pendekatan ini tidak memberikan peningkatan signifikan dalam pemrosesan permintaan, tetapi tetap menyediakan beberapa keunggulan HTTP/3 di tingkat jaringan bagi klien.

Architecture flowchart

Klien yang tidak mendukung HTTP/3 secara otomatis akan fallback ke HTTP/2 atau HTTP/1.1, sehingga mengaktifkan HTTP/3 tidak memengaruhi lalu lintas yang sudah ada.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Aktifkan HTTP/3 di Konsol MSE

Langkah 1: Aktifkan parameter EnableHttp3

  1. Login ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.

  2. Di panel navigasi kiri, pilih Cloud-native Gateway > Gateways. Di halaman Gateways, klik nama gateway tersebut.

  3. Di panel navigasi kiri, klik Parameter Settings.

  4. Di bagian Gateway Engine Parameters, temukan parameter EnableHttp3, lalu klik Edit pada kolom Actions.

    EnableHttp3 parameter

  5. Pada kotak dialog Modify Parameters, aktifkan sakelar Value, lalu klik OK.

Langkah 2: Verifikasi pendengar HTTPS

Pastikan instans Classic Load Balancer (CLB) yang dikaitkan dengan gateway memiliki pendengar sehat pada port 443:

  1. Di halaman Overview gateway, klik nama instans CLB.

  2. Di Konsol CLB, konfirmasi bahwa health check status untuk pendengar port 443 dalam kondisi sehat.

Langkah 3: Tambahkan layanan backend dan aturan routing

  1. Tambahkan layanan backend yang mendukung HTTP/1.1. Untuk informasi selengkapnya, lihat Tambahkan layanan dan Tambahkan sumber layanan.

  2. Tambahkan aturan routing untuk layanan tersebut. Misalnya, tambahkan aturan routing bernama quic. Untuk informasi selengkapnya, lihat Buat aturan routing.

Langkah 4: Uji koneksi HTTP/3

Jalankan perintah cURL untuk mengirim permintaan HTTP/3 melalui gateway:

curl --http3 https://api.alibaba-inc.com/quic \
  --resolve api.alibaba-inc.com:443:<IP address of the CLB instance> -k

Ganti api.alibaba-inc.com dengan nama domain Anda, /quic dengan path yang ditentukan dalam aturan routing Anda, dan <IP address of the CLB instance> dengan alamat IP CLB yang sebenarnya.

Catatan

Flag --http3 memerlukan build cURL yang mendukung HTTP/3. Anda dapat mengompilasi cURL dari source dengan dukungan HTTP/3, atau gunakan image Docker ymuski/curl-http3 sebagai gantinya:

docker run --rm ymuski/curl-http3 \
  curl --http3 https://api.alibaba-inc.com/quic \
  --resolve api.alibaba-inc.com:443:<IP address of the CLB instance> -k

Aktifkan HTTP/3 melalui Kubernetes Ingress

Jika Anda mengelola konfigurasi gateway melalui Kubernetes, gunakan MSE Ingress Controller untuk mengaktifkan HTTP/3.

Langkah 1: Aktifkan parameter EnableHttp3

Ikuti langkah-langkah yang sama seperti Langkah 1 pada metode konsol untuk mengaktifkan parameter EnableHttp3.

Langkah 2: Instal dan kaitkan MSE Ingress Controller

  1. Instal MSE Ingress Controller di kluster Container Service for Kubernetes (ACK) Anda. Untuk informasi selengkapnya, lihat Kelola komponen MSE Ingress Controller.

  2. Kaitkan gateway dengan MSE Ingress Controller. Untuk informasi selengkapnya, lihat Konfigurasikan MseIngressConfig.

Langkah 3: Buat Secret HTTPS dan Ingress

Terapkan manifes berikut untuk membuat TLS Secret dan aturan routing Ingress di kluster ACK Anda:

apiVersion: v1
kind: Secret
metadata:
  name: testsecret-tls
  namespace: default
data:
  tls.crt: <base64-encoded-certificate>    # Sertifikat TLS dalam format Base64
  tls.key: <base64-encoded-private-key>     # Kunci privat dalam format Base64
type: kubernetes.io/tls
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: tls-example-ingress
  annotations:
    # Setel ke HTTP2 jika layanan backend Anda menggunakan HTTP/2
    nginx.ingress.kubernetes.io/backend-protocol: HTTP
spec:
  tls:
  - hosts:
      - https-example.foo.com
    secretName: testsecret-tls
  rules:
  - host: https-example.foo.com
    http:
      paths:
      - path: /quic
        pathType: Prefix
        backend:
          service:
            name: service1             # Nama layanan backend Anda
            port:
              number: 80

Ganti nilai placeholder berikut:

PlaceholderDeskripsiContoh
<base64-encoded-certificate>Sertifikat TLS dalam format Base64LS0tLS1CRUdJTi...
<base64-encoded-private-key>Kunci privat dalam format Base64LS0tLS1CRUdJTi...
https-example.foo.comNama domain HTTPS Andaapi.example.com
service1Nama layanan backend Andamy-web-service

Langkah 4: Uji koneksi HTTP/3

Jalankan perintah cURL untuk memverifikasi bahwa HTTP/3 berfungsi melalui Ingress:

curl --http3 https://https-example.foo.com/quic \
  --resolve https-example.foo.com:443:<IP address of the CLB instance> -k

Jika koneksi berhasil, respons akan mencakup header alt-svc yang mengiklankan dukungan HTTP/3.

Catatan

Flag --http3 memerlukan build cURL yang mendukung HTTP/3. Anda dapat mengompilasi cURL dari source dengan dukungan HTTP/3, atau gunakan image Docker ymuski/curl-http3.

Perbedaan HTTP/3 dengan versi sebelumnya

HTTP/3 dibangun di atas HTTP/1.1 dan HTTP/2 tetapi mengubah lapisan transport.

Keterbatasan HTTP/1.1

HTTP/1.1 mentransfer pesan sebagai teks yang dipisahkan spasi. Tanpa lapisan multiplexing, browser membuka beberapa koneksi TCP untuk menangani permintaan paralel, yang mengganggu pengendalian kemacetan dan efisiensi jaringan. Untuk informasi selengkapnya, lihat RFC 9112.

Peningkatan HTTP/2 dan masalah yang tersisa

HTTP/2 menambahkan framing biner dan multiplexing untuk mengurangi latensi tanpa mengubah lapisan transport. Namun, karena HTTP/2 berjalan di atas TCP, satu paket yang hilang akan memblokir semua stream dalam koneksi hingga proses pemulihan selesai (head-of-line blocking). Untuk informasi selengkapnya, lihat RFC 9113.

Cara HTTP/3 menyelesaikan masalah ini

HTTP/3 (sebelumnya disebut HTTP-over-QUIC) menggantikan TCP dengan QUIC, protokol berbasis UDP yang awalnya dikembangkan oleh Google. IETF mengganti nama HTTP-over-QUIC menjadi HTTP/3 pada tahun 2018 dan menerbitkannya sebagai standar usulan dalam RFC 9114 pada 6 Juni 2022.

QUIC memberikan kontrol aliran (flow control) sendiri untuk setiap stream, sehingga paket yang hilang pada satu stream tidak memblokir stream lainnya. HTTP/3 juga meningkatkan pengendalian kemacetan dan kompresi header dibandingkan HTTP/2.

HTTP/3 didukung oleh Cloudflare, Google Chrome, dan Firefox Nightly. Untuk ikhtisar lengkap, lihat HTTP/3 dari A hingga Z: konsep inti.