426

개요

426 Upgrade Required는 서버가 현재 프로토콜로는 요청을 처리하지 않으며, 클라이언트가 다른 프로토콜로 전환해야 한다는 뜻입니다. 응답의 Upgrade 헤더에 요구되는 프로토콜이 명시됩니다.

예를 들어 평문 HTTP로 접근했지만 서버가 TLS를 요구하거나, 일반 HTTP 요청이 왔지만 엔드포인트가 WebSocket 업그레이드를 기대할 때 반환됩니다.

언제 발생하나

요청 / 응답 예시

요청
GET /socket HTTP/1.1
Host: api.example.com
응답
HTTP/1.1 426 Upgrade Required
Upgrade: TLS/1.3, HTTP/1.1
Connection: Upgrade
Content-Type: text/plain

This service requires an upgraded protocol.

코드로 보기

app.get('/socket', (req, res) => {
  if (req.headers.upgrade !== 'websocket') {
    return res.status(426)
      .set('Upgrade', 'websocket')
      .set('Connection', 'Upgrade')
      .send('Upgrade Required');
  }
});

흔한 원인

해결 방법

실무 참고

관련 상태코드

관련 헤더

스펙 근거