101 Switching Protocols: 프로토콜 전환을 나타내는 HTTP 상태 코드

スポンサーリンク
スポンサーリンク

101 Switching Protocols에 대하여

101 Switching Protocols의 개요

프로토콜 전환을 나타내는HTTP 상태 코드

101 Switching Protocols

개요 101 Switching Protocols는 클라이언트의 요청에 따라 서버가 통신 프로토콜을 전환하고 있음을 알리는 HTTP 상태 코드입니다. 클라이언트가 Upgrade 헤더를 사용하여 새 프로토콜로 전환을 요청하고, 서버가 이를 승인한 경우 반환됩니다.

의미 서버가 요청을 수락하고 지정된 프로토콜로 전환했습니다.

101 Switching Protocols가 반환되는 경우

  • 클라이언트가 Upgrade 헤더를 포함한 요청을 보낸 경우
  • 서버가 프로토콜 전환을 지원하고 승인한 경우
  • HTTP에서 WebSocket 또는 HTTP/2와 같은 다른 프로토콜로 전환하는 경우

101 Switching Protocols의 예시

HTTP에서 WebSocket으로 전환

GET /chat HTTP/1.1  
Host: example.com  
Upgrade: websocket  
Connection: Upgrade  

응답 예시:

HTTP/1.1 101 Switching Protocols  
Upgrade: websocket  
Connection: Upgrade  

설명: 클라이언트가 Upgrade 헤더를 사용하여 WebSocket으로 전환을 요청하고, 서버가 이를 승인한 경우 101 상태 코드가 반환됩니다. 이후의 통신은 WebSocket 프로토콜을 사용하여 진행됩니다.

HTTP에서 HTTP/2로 전환

GET / HTTP/1.1  
Host: example.com  
Upgrade: h2c  
Connection: Upgrade  

응답 예시:

HTTP/1.1 101 Switching Protocols  
Upgrade: h2c  
Connection: Upgrade  

설명: 클라이언트가 HTTP/1.1에서 HTTP/2로 전환을 요청하고, 서버가 이를 승인한 경우 101 상태 코드가 반환됩니다. 이 전환은 클라이언트와 서버가 모두 해당 프로토콜을 지원하는 경우에만 유효합니다.

주의 사항

101 Switching Protocols를 반환할 때 주의해야 할 사항:

  • 클라이언트 요청을 신중히 평가
    클라이언트가 요청한 프로토콜 전환을 서버가 지원하는지 확인해야 합니다.
  • 보안 위험 고려
    특히 WebSocket으로 전환하는 경우 보안 측면에서 잠재적 위험이 있으므로 신중히 설정해야 합니다.

관련 HTTP 상태 코드와의 비교

101 Switching Protocols와 관련된 HTTP 상태 코드 설명:

  • 200 OK: 요청이 성공적으로 처리되고 통신 프로토콜이 변경되지 않은 경우 사용됩니다.
  • 426 Upgrade Required: 클라이언트가 서버가 지원하는 프로토콜로 업그레이드하지 않으면 요청이 완료되지 않을 때 반환됩니다.

이 차이를 이해하면 101 상태 코드를 적절히 사용할 수 있습니다.