INDEX
101 Switching Protocols에 대하여
101 Switching Protocols의 개요
프로토콜 전환을 나타내는HTTP 상태 코드 | ||
101 Switching Protocols 개요 101 Switching Protocols는 클라이언트의 요청에 따라 서버가 통신 프로토콜을 전환하고 있음을 알리는 HTTP 상태 코드입니다. 클라이언트가 |
||
의미 서버가 요청을 수락하고 지정된 프로토콜로 전환했습니다. |
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 상태 코드를 적절히 사용할 수 있습니다.