네트워크
WebSocket
HTTP 업그레이드로 시작해 양방향 풀-듀플렉스 통신을 지원하는 프로토콜.
- 초기 HTTP
- Upgrade 요청
- 101 응답
- 서버 push
- 양방향 통신
- 종료
클라이언트HTTP
(HTTP 연결만 수립)
서버HTTP
WebSocket은 HTTP 위에서 시작합니다. 같은 포트(80/443)로 HTTP처럼 연결을 맺은 뒤 프로토콜을 업그레이드합니다.
핵심 개념
HTTP Upgrade
초기 연결은 HTTP로 시작, `Upgrade: websocket` 헤더로 프로토콜 전환. 같은 포트(80/443) 사용.
양방향 풀-듀플렉스
서버도 클라이언트에 능동적으로 메시지를 보낼 수 있음. 폴링 불필요.
프레임 기반
HTTP 같은 요청/응답이 아닌, 작은 프레임(바이너리/텍스트)을 양쪽이 자유롭게 전송.
사용 사례
채팅, 실시간 알림, 협업 문서, 게임, 주식 시세 — 서버 push가 필요한 모든 경우.
면접 단골 질문
- Q1.WebSocket과 HTTP의 차이를 설명해보세요.
- Q2.Long Polling, SSE, WebSocket 중 어떤 상황에 어느 것을 쓰나요?
- Q3.WebSocket 연결이 끊겼을 때 어떻게 재연결/복구 처리하나요?
- Q4.WebSocket 인증은 보통 어떻게 처리하나요? HTTP 쿠키가 그대로 쓰이나요?
- Q5.WebSocket 서버를 수평 확장할 때 고려할 점은?