Skip to content

SSE & WebSocket

Choi Jeongmin edited this page Nov 2, 2024 · 1 revision

SSE

  • Server-Sent Events(SSE)는 웹 애플리케이션에서 서버가 클라이언트로 실시간 데이터를 전송하는 기술을 말한다.
  • 클라이언트가 서버와의 연결을 설정하면, 서버는 해당 연결을 통해 지속적으로 데이터를 전송할 수 있다.
  • 이는 주로 실시간 알림이나 업데이트가 필요한 경우에 사용되며, 단방향 통신을 지원한다.
  • SSE는 HTTP 기반 프로토콜로, 브라우저에서 기본적으로 지원되며, 연결이 끊어졌을 때 자동으로 재연결을 시도하는 기능을 제공한다.
    • 그러나 단방향 통신만 지원하므로, 클라이언트에서 서버로 데이터를 전송하려면 별도의 HTTP 요청을 사용해야 한다.
  • 비교적 간단한 구현을 통해서 사용할 수 있다.

WebSocket

  • WebSocket은 웹 애플리케이션에서 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜을 말한다.
    • 이를 통해 실시간 데이터 전송이 필요한 애플리케이션에서 효율적인 통신을 구현할 수 있다.
  • 클라리언트와 서버가 서로 데이터를 주고받을 수 있어, 실시간 상호작용이 가능해진다.
  • 한 번 연결이 성립되면, 별도의 재연결 없이 지속적으로 데이터를 주고받을 수 있다.
    • 초기 연결 이후에는 헤더 정보가 최소화되어, 데이터 전송 시 오버헤드가 적어진다.
  • 대부분의 최신 웹 브라우저에서 지원되므로, 스탠다드한 기술임.
  • 웹소켓의 동작 과정
    • 핸드셰이크를 통해 서버와 클라이언트가 연결 성립.
    • 연결이 성립되면, 프레임 단위로 데이터를 주고 받음.
    • 클라이언트나 서버 중 어느 한 쪽이 연결 종료를 요청하면, 양측은 연결을 정상적으로 죵료한다.

SSE vs WebSocket

  • 통신 방향
    • SSE: 서버에서 → 클라이언트로의 단방향 통신
    • WebSocket: 서버 ↔ 클라이언트 양방향 통신
  • 프로토콜
    • SSE: HTTP 프로토콜을 기반
    • WebSocket: 독립적인 웹소켓 프로토콜을 사용

참고자료

SSE, WebSocket 외 실시간 연결 방법

Clone this wiki locally