DNS RobotDNS Propagation Checker
BerandaDNSWHOISIPSSL
DNS RobotDNS Propagation Checker

Alat pemeriksaan DNS generasi terbaru

Kebijakan PrivasiKetentuan LayananTentang KamiBlogKontak

Alat DNS

Pencarian DNSTes Kecepatan DNSDomain ke IPPencarian NSPencarian MXLihat semua

Alat Email

Pemeriksa Rekaman SPFPemeriksa DMARCPemeriksa DKIMAlat Tes SMTPAnalisis Header EmailLihat semua

Alat Website

Pencarian WHOISCek Hosting WebsiteKetersediaan DomainPencari SubdomainPendeteksi CMSLihat semua

Alat Jaringan

Alat PingTraceroutePemeriksa PortPemeriksaan Header HTTPPemeriksaan Sertifikat SSLLihat semua

Alat IP

Pencarian IPIP Saya ApaPemeriksaan Daftar Hitam IPIP ke HostnamePencarian ASNLihat semua

Alat Utilitas

Pemindai QR CodePembuat QR CodeUPI QR Code GeneratorWiFi QR Code GeneratorPenerjemah Kode MorseLihat semua
© 2026 DNS Robot. Dikembangkan oleh: ❤ Shaik Brothers
Semua sistem beroperasi normal
Made with
Beranda/Blog/ERR_HTTP2_PROTOCOL_ERROR: Arti dan Cara Mengatasinya

ERR_HTTP2_PROTOCOL_ERROR: Arti dan Cara Mengatasinya

Shaik Vahid30 Sep 20269 menit baca
Halaman error Chrome dengan ERR_HTTP2_PROTOCOL_ERROR di samping pemeriksaan untuk mengatasi error protokol HTTP/2
Halaman error Chrome dengan ERR_HTTP2_PROTOCOL_ERROR di samping pemeriksaan untuk mengatasi error protokol HTTP/2

Poin Penting

ERR_HTTP2_PROTOCOL_ERROR (error Chromium -337) berarti server, atau sesuatu di antara Anda dan server, mengirim respons HTTP/2 yang melanggar aturan protokol, sehingga Chrome membuangnya. Bagi pengunjung, memuat ulang, membuka jendela Incognito, menghapus cache situs, atau menjeda pemindaian HTTPS antivirus biasanya membantu, karena respons yang rusak atau tersimpan di cache adalah pemicu yang umum. Bagi pemilik situs, penyebab umumnya adalah respons yang terpotong di tengah jalan (sering kali proxy dengan disk penuh atau folder temp yang tidak bisa ditulisi), Content-Length yang tidak sesuai dengan body, atau header yang dilarang HTTP/2. Reproduksi dengan curl --http2 -v.

Advertisement

Apa Itu ERR_HTTP2_PROTOCOL_ERROR?

ERR_HTTP2_PROTOCOL_ERROR adalah error Chrome dan Edge yang berarti browser menerima respons HTTP/2 yang melanggar aturan protokol. Di Chromium, ini adalah net error -337: "there is an HTTP/2 protocol error". Chrome tidak punya halaman error khusus untuk kode ini, jadi yang muncul adalah halaman generik: "Situs ini tidak dapat dijangkau" (This site can't be reached), dengan keterangan bahwa halaman web tersebut mungkin sedang tidak aktif untuk sementara atau telah dipindahkan secara permanen ke alamat web baru, lalu ERR_HTTP2_PROTOCOL_ERROR di bawahnya.

HTTP/2 adalah versi HTTP yang lebih cepat dan kini dipakai sebagian besar situs HTTPS. Protokol ini lebih ketat daripada HTTP/1.1: respons dipecah menjadi frame biner, header mengikuti aturan yang presisi, dan ukuran respons yang dideklarasikan harus sama dengan yang benar-benar tiba. Ketika Chrome melihat respons yang melanggar aturan itu, misalnya respons yang berhenti di tengah jalan atau memuat header terlarang, seluruh respons dianggap rusak (malformed) dan dibuang.

Developer sering melihatnya di konsol DevTools sebagai net::ERR_HTTP2_PROTOCOL_ERROR 200 (OK). Kombinasi itu adalah petunjuk kuat: server menjawab 200, tetapi body respons tidak pernah tiba dengan utuh.

Catatan

Firefox dan Safari juga memakai HTTP/2, tetapi melaporkan respons yang rusak dengan cara berbeda, sehingga sebuah halaman bisa gagal di Chrome namun tampak termuat (kadang tidak lengkap) di browser lain. Itu bukan berarti Chrome yang salah: Chrome biasanya hanya paling ketat dalam menolak respons yang rusak.

Apa yang Dianggap Rusak oleh HTTP/2

Standar HTTP/2 (RFC 9113) mendaftar kesalahan yang membuat sebuah respons dianggap rusak (malformed), dan stream yang di-reset sebelum selesai juga dianggap gagal. Inilah masalah di balik sebagian besar error yang terjadi di dunia nyata:

AturanYang melanggarnya
Content-Length harus sama dengan ukuran bodyServer atau plugin mendeklarasikan satu ukuran tetapi mengirim ukuran lain, misalnya saat output dikompres setelah panjangnya ditetapkan
Respons harus berakhir dengan bersihServer, proxy, atau aplikasi berhenti mengirim di tengah jalan
Tidak boleh ada header khusus koneksiConnection, Keep-Alive, Proxy-Connection, Transfer-Encoding, atau Upgrade dikirim dalam respons HTTP/2
Nama field harus huruf kecilNama header berhuruf kapital yang diteruskan begitu saja ke HTTP/2
Nilai header harus validBaris baru atau karakter terlarang lain di dalam nilai header
Baris :status yang validKode status yang hilang atau tidak bisa dibaca

Advertisement

Apa Penyebab ERR_HTTP2_PROTOCOL_ERROR?

Sebagian besar kasus berasal dari sisi server, tetapi beberapa hal di komputer Anda sendiri bisa merusak respons dalam perjalanannya:

  • Di server: respons yang terpotong di tengah jalan (proxy yang kehabisan ruang disk atau tidak bisa menulis file temp-nya, aplikasi yang crash saat streaming, timeout), nilai Content-Length yang salah, header yang terlarang atau tidak valid, serta dukungan HTTP/2 yang bermasalah di konfigurasi server atau CDN yang lebih lama.

  • Di sisi Anda: antivirus atau firewall yang memeriksa HTTPS dan menulis ulang respons, ekstensi browser yang mengubah permintaan atau respons, salinan halaman di cache yang rusak, dan sesekali versi Chrome yang usang.

Solusi 1: Hard Reload dan Coba Incognito

Tekan Ctrl + Shift + R (Mac: Cmd + Shift + R) untuk memuat ulang tanpa cache. Respons yang sekali terpotong mungkin tiba dengan utuh pada percobaan berikutnya.

Lalu buka halaman di jendela Incognito (Ctrl + Shift + N, Mac Cmd + Shift + N). Incognito tidak memakai cookie maupun cache dari profil normal Anda, dan ekstensi nonaktif secara default. Jika halaman terbuka di sana, Solusi 2 atau Solusi 3 akan mengatasinya di jendela normal Anda.

Advertisement

Solusi 2: Hapus Cache dan Cookie Situs Itu

Salinan cache yang rusak atau cookie yang membengkak bisa memicu error ini berulang kali di satu situs. Hapus data situs itu saja: klik ikon di sebelah kiri address bar → Cookie dan data situs (atau Setelan situs) → hapus datanya, lalu muat ulang. Untuk pembersihan yang lebih luas, tekan Ctrl + Shift + Delete lalu hapus Gambar dan file dalam cache untuk beberapa hari terakhir.

Solusi 3: Jeda Pemindaian HTTPS Antivirus dan Ekstensi

Perangkat lunak keamanan yang mendekripsi dan memeriksa HTTPS berada di tengah setiap koneksi HTTP/2. Jika penanganan HTTP/2-nya bermasalah atau usang, perangkat lunak itu bisa meneruskan respons yang dianggap rusak oleh Chrome. Matikan hanya fitur pemindaian HTTPS-nya (sering bernama HTTPS scanning, Web Shield, SSL/TLS protocol filtering, atau Scan encrypted connections) lalu muat ulang. Jika itu mengatasinya, perbarui antivirus dan tambahkan pengecualian untuk situs tersebut.

Selanjutnya, nonaktifkan semua ekstensi di chrome://extensions, muat ulang, lalu aktifkan kembali satu per satu. Pemblokir iklan, alat privasi, dan apa pun yang mengedit header adalah tersangka yang biasa.

Peringatan

Aktifkan kembali proteksi setelah selesai menguji. Mematikan pemindaian HTTPS untuk semua situs demi memperbaiki satu situs adalah pertukaran yang buruk; buat pengecualian untuk situs itu saja.

Advertisement

Solusi 4: Perbarui Chrome dan Coba Browser Lain

Buka chrome://settings/help untuk memasang pembaruan yang tertunda, lalu restart browser. Setelah itu buka halaman yang sama di Firefox atau Safari. Jika gagal di semua browser, situsnya yang rusak dan hanya pemiliknya yang bisa memperbaikinya. Jika hanya Chrome atau Edge yang gagal, penyebabnya biasanya tetap situs itu, karena Chrome paling ketat menolak HTTP/2 yang rusak, tetapi Solusi 2 dan 3 layak diulang.

Solusi 5: Uji Halaman Tanpa HTTP/2

Chrome bisa dijalankan dengan HTTP/2 dimatikan, sehingga Anda tahu pasti apakah HTTP/2 penyebabnya. Tutup semua jendela Chrome terlebih dahulu, lalu jalankan dari terminal:

bash
# Windows (Command Prompt)
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-http2

# macOS (Terminal)
open -a "Google Chrome" --args --disable-http2

Tips

Jika itu situs Anda sendiri dan Anda butuh solusi sementara selama menyelidiki, Anda bisa mematikan HTTP/2 di server untuk sementara (di nginx, hapus http2 dari baris listen 443 ssl atau setel http2 off;). Browser kemudian beralih ke HTTP/1.1, yang lebih toleran. Anggap ini langkah sementara, bukan solusinya.

Jika halaman terbuka di jendela itu, respons HTTP/2 situs tersebut rusak dan pemiliknya perlu memperbaikinya. Tutup Chrome lalu buka kembali seperti biasa setelahnya. Flag ini hanya berlaku untuk satu kali peluncuran itu.

Advertisement

Untuk Pemilik Situs: Mengatasi Error Protokol HTTP/2

Jika pengunjung di jaringan dan browser yang berbeda-beda melaporkan error ini, masalahnya ada di stack Anda. Tiga pemeriksaan berikut menemukan hampir semua penyebabnya.

1. Reproduksi dengan curl

bash
# HTTP/2: perhatikan bagian akhir output
curl -sv --http2 https://example.com/broken-page -o /dev/null
# Stream yang rusak berakhir dengan pesan seperti:
# HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)
# (curl 8.19+: HTTP/2 stream 1 reset by server (error 0x1 PROTOCOL_ERROR))

# URL yang sama lewat HTTP/1.1 sebagai pembanding
curl -sv --http1.1 https://example.com/broken-page -o /dev/null

Tips

Di Chrome DevTools (F12) → Network, permintaan yang gagal bisa menunjukkan berapa banyak data yang diterima sebelum terputus. Membandingkannya dengan ukuran yang diklaim respons di header content-length dengan cepat memberi tahu apakah Anda sedang menghadapi respons yang terpotong.

Jika HTTP/1.1 berhasil dan HTTP/2 gagal, error tersebut sudah terkonfirmasi. Bandingkan header respons dari keduanya, dan catat berapa byte yang tiba sebelum stream terputus. Alat HTTP Headers juga menampilkan header yang dikirim situs Anda jika dilihat dari luar jaringan Anda.

2. Periksa Respons yang Terpotong di Tengah Jalan

Penyebab paling umum di sisi server adalah respons yang sudah dimulai (status 200, header terkirim) lalu berhenti lebih awal. nginx menampung respons besar dari aplikasi Anda ke dalam file sementara, dan jika disk penuh atau nginx tidak bisa menulis ke folder temp-nya, respons berakhir lebih awal dan browser melaporkan error protokol. Periksa:

bash
df -h                                   # apakah ada disk yang penuh?
sudo grep -E "No space left|Permission denied" /var/log/nginx/error.log | tail
ls -ld /var/lib/nginx/proxy /var/lib/nginx/fastcgi   # folder temp di Debian/Ubuntu; pemiliknya harus sama dengan user nginx

Periksa juga aplikasinya: proses PHP atau Node yang crash, timeout, atau mencapai batas memori saat men-streaming halaman besar atau unduhan menghasilkan hal yang sama. Log aplikasi di sekitar waktu error biasanya memperlihatkannya.

3. Perbaiki Content-Length dan Header Terlarang

  • Content-Length: biarkan server yang menghitungnya. Jangan menyetelnya secara manual di kode aplikasi jika ada plugin, middleware, atau web server yang juga mengompres atau mengubah output, karena panjang yang dideklarasikan tidak lagi sesuai dengan byte yang dikirim. Panjang yang disetel di kode PHP sementara plugin atau setelan PHP juga mengompres output adalah salah satu penyebabnya di situs WordPress.

  • Header khusus koneksi: hapus kode yang menyetel Connection, Keep-Alive, Transfer-Encoding, atau Upgrade pada respons. HTTP/2 melarangnya, dan meskipun nginx membuang sebagian besar header itu untuk Anda, sebagian server aplikasi dan proxy tidak melakukannya.

  • Nilai header: pastikan tidak ada header yang berisi baris baru atau karakter kontrol. Masalah ini sering berasal dari input pengguna yang dimasukkan ke header, seperti nama file di Content-Disposition.

  • CDN di depan: jika Anda memakai Cloudflare atau CDN lain, uji origin secara langsung (dengan curl --resolve atau entri hosts) untuk mengetahui apakah error berasal dari origin atau dari CDN.

Catatan

Di belakang CDN, browser berbicara HTTP/2 dengan CDN, sementara CDN mungkin berbicara HTTP/1.1 dengan origin Anda. Origin yang mengirim Content-Length yang salah atau menutup koneksi terlalu cepat tetap muncul di browser sebagai error HTTP/2, karena CDN hanya bisa meneruskan apa yang diterimanya.

ERR_HTTP2_PROTOCOL_ERROR vs Error Serupa

ErrorKodeYang terjadi
ERR_HTTP2_PROTOCOL_ERROR-337Respons HTTP/2 melanggar aturan protokol
ERR_QUIC_PROTOCOL_ERROR-356Kegagalan sejenis di HTTP/3 (QUIC)
ERR_SSL_PROTOCOL_ERROR-107Handshake HTTPS (TLS) gagal sebelum HTTP/2 dimulai
ERR_CONNECTION_CLOSED-100Koneksi ditutup sebelum halaman tiba
ERR_EMPTY_RESPONSE-324Server sama sekali tidak mengirim apa pun

Panduan lengkapnya: ERR_QUIC_PROTOCOL_ERROR, ERR_SSL_PROTOCOL_ERROR, ERR_CONNECTION_CLOSED, dan ERR_EMPTY_RESPONSE. Untuk memeriksa sertifikat dan konfigurasi HTTPS sebuah situs dari luar, gunakan SSL Checker.

Lihat header yang benar-benar dikirim situs Anda

HTTP Headers Checker dari DNS Robot mengambil URL mana pun dari server kami dan menampilkan kode status serta setiap header respons, sehingga header yang terlarang atau rusak mudah ditemukan.

Coba HTTP Headers Checker

Advertisement

Pertanyaan yang Sering Diajukan

Artinya Chrome menerima respons HTTP/2 yang melanggar aturan protokol, misalnya respons yang berakhir terlalu cepat, mendeklarasikan ukuran yang salah, atau memuat header terlarang, sehingga respons itu dibuang. Di Chromium, ini adalah net error -337.

Alat Terkait

HTTP Headers CheckSSL Certificate CheckPort Checker

Artikel Terkait

ERR_QUIC_PROTOCOL_ERROR: Penyebab & Cara MemperbaikinyaERR_SSL_PROTOCOL_ERROR: Cara Memperbaikinya (Chrome, Edge, Semua Browser)ERR_CONNECTION_CLOSED: Arti dan Cara Mengatasinya

Daftar Isi

  • Apa Itu ERR_HTTP2_PROTOCOL_ERROR?
  • Apa yang Dianggap Rusak oleh HTTP/2
  • Apa Penyebab ERR_HTTP2_PROTOCOL_ERROR?
  • Solusi 1: Hard Reload dan Coba Incognito
  • Solusi 2: Hapus Cache dan Cookie Situs Itu
  • Solusi 3: Jeda Pemindaian HTTPS Antivirus dan Ekstensi
  • Solusi 4: Perbarui Chrome dan Coba Browser Lain
  • Solusi 5: Uji Halaman Tanpa HTTP/2
  • Untuk Pemilik Situs: Mengatasi Error Protokol HTTP/2
  • 1. Reproduksi dengan curl
  • 2. Periksa Respons yang Terpotong di Tengah Jalan
  • 3. Perbaiki Content-Length dan Header Terlarang
  • ERR_HTTP2_PROTOCOL_ERROR vs Error Serupa
  • Pertanyaan yang Sering Diajukan