ความหมาย
เซิร์ฟเวอร์ปฏิเสธคำขอด้วยโปรโตคอลปัจจุบัน และต้องการให้ไคลเอนต์อัปเกรด เช่น เป็น TLS หรือ HTTP/2 ตามที่ระบุใน header Upgrade
สาเหตุที่พบบ่อย
- เซิร์ฟเวอร์ต้องการโปรโตคอลเวอร์ชันใหม่กว่า
- เรียก endpoint WebSocket ด้วย HTTP ธรรมดา
วิธีแก้ไข
สำหรับไคลเอนต์หรือผู้เยี่ยมชม
เปลี่ยนไปใช้โปรโตคอลใน header Upgrade เช่น https, HTTP/2 หรือ WebSocket
สำหรับผู้ดูแลเว็บไซต์หรือ API
ใส่ header Upgrade ที่ระบุโปรโตคอลที่ต้องการ
ตัวอย่างการตอบกลับ
HTTP/1.1
HTTP/1.1 426 Upgrade Required
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Upgrade: HTTP/2
Connection: Upgrade
Content-Length: 0 ข้อกำหนด
คำถามที่พบบ่อย
› ทำไมเซิร์ฟเวอร์ WebSocket ตอบ 426
คำขอเป็น HTTP ธรรมดาที่ไม่มี header สำหรับอัปเกรดเป็น WebSocket
› ใช้ 426 บังคับ HTTPS ไหม
ไม่ค่อย เว็บไซต์มักเปลี่ยนเส้นทางไป https ด้วย 301/308 และใช้ HSTS