WebSocket과 HTTP 차이점

오정빈·3일 전

WebSocket & TCP — 핵심 기술 정리

실시간 처리의 핵심: 양방향 통신

웹소켓(WebSocket)은 서버와 클라이언트가 동시에 데이터를 주고받을 수 있는 기술입니다.
전화 통화 방식과 매우 비슷한 구조를 가집니다.


전화 통화에 비유한 실시간 통신

단계설명
연결(Handshake)전화를 거는 과정 ("여보세요? 들리세요?")
유지연결된 상태를 계속 유지
자유로운 대화요청 없이도 서로 말을 건넬 수 있음

한 번 연결되면 끊기 전까지 계속 유지되고, 양방향으로 실시간 통신이 가능하다.


WebSocket(WS) 프로토콜이란?

WebSocket은 기존 HTTP 요청을 기반으로 프로토콜을 업그레이드하여 실시간 양방향 통신을 수행하는 기술입니다.
HTTP를 대체하는 것이 아니라 HTTP에서 출발하여 WebSocket으로 변경(Upgrade) 되는 개념입니다.

WebSocket URL

프로토콜설명
ws://기본 WebSocket 연결
wss://HTTPS처럼 SSL 보안 적용된 WebSocket

WebSocket 작동 원리

1. Handshake (HTTP 업그레이드 요청)

초기 요청은 HTTP GET 으로 전송됩니다.

📌 Client

GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: (랜덤 키)
Sec-WebSocket-Version: 13

📌 Server

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: (계산된 응답 키)

➡ 의미:
"HTTP로 만나서 WebSocket으로 대화하자" 라는 합의 완료.


2. 프로토콜 전환 (Connection Open)

HTTP → WebSocket 으로 변경되고 연결이 유지됩니다.

🔹 HTTP

  • 요청 후 응답하면 연결 종료

🔹 WebSocket

  • 연결을 유지하고, 끊기 전까지 계속 사용 (Stateful)

3. 양방향(Full Duplex) 실시간 통신

HTTP PollingWebSocket
계속 요청 필요요청 없이 push 가능
지연 발생 가능지연 최소화
불필요한 트래픽효율적
서버 먼저 전송 불가서버 → 클라이언트 가능

📌 주요 사용 사례

  • 채팅 시스템
  • 실시간 알림
  • 온라인 게임
  • 주식/코인 시세 전송
  • 실시간 지도/위치 공유

TCP란 무엇인가?

WebSocket은 TCP 위에서 동작합니다.
TCP는 인터넷의 안전하고 정확한 배송 서비스라고 할 수 있습니다.

TCP의 3가지 핵심 특징

기능설명
신뢰성패킷이 제대로 갔는지 ACK 확인
순서 보장순서가 바뀌어도 원래대로 정렬
연결 지향통신 전 반드시 연결 수립

TCP 연결 과정 — 3-Way Handshake

단계메시지의미
1SYN접속 요청
2SYN + ACK요청 수락 + 서버도 요청
3ACK최종 수락

➡ 이후 데이터 전송이 시작됩니다.


WebSocket과 TCP의 관계

항목WebSocketTCP
레이어응용 계층전송 계층
역할실시간 통신안정적 데이터 전달
기반TCP 기반원천 기술

📌 WebSocket이 실시간 통신을 효율적으로 수행할 수 있는 이유
→ TCP가 순서 보장 + 신뢰성 + 연결 유지를 제공하기 때문입니다.


WebSocket이 필요한 이유 정리

기존 방식 (HTTP Polling)WebSocket
지속적인 요청 발생연결 유지
지연 발생지연 최소
서버 Push 불가서버 Push 가능
트래픽 낭비효율적 통신

결론

  • WebSocket은 HTTP 요청에서 시작하여 WebSocket으로 업그레이드된다.
  • WebSocket은 TCP의 연결 위에서 실시간 양방향 통신을 제공한다.
  • 실시간 정보 업데이트가 필요한 모든 시스템의 핵심 기술이다.

0개의 댓글