DevToolPal
ID
1xx Informasi

101 Switching Protocols

Berganti Protokol

Artinya

Server setuju beralih ke protokol yang diminta klien di header Upgrade, paling sering WebSocket. Setelah respons ini koneksi memakai protokol baru.

Penyebab umum

  • Handshake WebSocket berhasil
  • Klien meminta upgrade h2c (HTTP/2 tanpa enkripsi)
  • Upgrade protokol kustom diterima

Cara memperbaiki

Sebagai klien atau pengunjung

Untuk WebSocket, 101 berarti berhasil. Jika mengharapkan 101 tetapi mendapat 200 atau 400, pastikan URL mengarah ke endpoint WebSocket dan proxy meneruskan header Upgrade serta Connection.

Sebagai pengelola situs atau API

Di belakang nginx atau load balancer, teruskan Upgrade dan Connection secara eksplisit (proxy_set_header Upgrade $http_upgrade; Connection "upgrade") dan naikkan batas waktu idle untuk socket yang berumur panjang.

Contoh respons

HTTP/1.1
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

Spesifikasi

RFC 9110 §15.2.2

FAQ

› Mengapa WebSocket saya mengembalikan 400, bukan 101?

Header handshake hilang atau diubah, sering oleh proxy yang membuang Upgrade/Connection, atau Sec-WebSocket-Key maupun versinya tidak valid.

› Apakah HTTP/2 memakai 101?

Hanya untuk upgrade h2c tanpa enkripsi yang jarang dipakai. Browser menegosiasikan HTTP/2 lewat TLS ALPN, dan HTTP/2 sendiri tidak punya respons 101.