-
Notifications
You must be signed in to change notification settings - Fork 3
SSE & WebSocket
Choi Jeongmin edited this page Nov 2, 2024
·
1 revision
- Server-Sent Events(SSE)는 웹 애플리케이션에서 서버가 클라이언트로 실시간 데이터를 전송하는 기술을 말한다.
- 클라이언트가 서버와의 연결을 설정하면, 서버는 해당 연결을 통해 지속적으로 데이터를 전송할 수 있다.
- 이는 주로 실시간 알림이나 업데이트가 필요한 경우에 사용되며, 단방향 통신을 지원한다.
- SSE는 HTTP 기반 프로토콜로, 브라우저에서 기본적으로 지원되며, 연결이 끊어졌을 때 자동으로 재연결을 시도하는 기능을 제공한다.
- 그러나 단방향 통신만 지원하므로, 클라이언트에서 서버로 데이터를 전송하려면 별도의 HTTP 요청을 사용해야 한다.
- 비교적 간단한 구현을 통해서 사용할 수 있다.
- WebSocket은 웹 애플리케이션에서 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜을 말한다.
- 이를 통해 실시간 데이터 전송이 필요한 애플리케이션에서 효율적인 통신을 구현할 수 있다.
- 클라리언트와 서버가 서로 데이터를 주고받을 수 있어, 실시간 상호작용이 가능해진다.
- 한 번 연결이 성립되면, 별도의 재연결 없이 지속적으로 데이터를 주고받을 수 있다.
- 초기 연결 이후에는 헤더 정보가 최소화되어, 데이터 전송 시 오버헤드가 적어진다.
- 대부분의 최신 웹 브라우저에서 지원되므로, 스탠다드한 기술임.
- 웹소켓의 동작 과정
- 핸드셰이크를 통해 서버와 클라이언트가 연결 성립.
- 연결이 성립되면, 프레임 단위로 데이터를 주고 받음.
- 클라이언트나 서버 중 어느 한 쪽이 연결 종료를 요청하면, 양측은 연결을 정상적으로 죵료한다.
- 통신 방향
- SSE: 서버에서 → 클라이언트로의 단방향 통신
- WebSocket: 서버 ↔ 클라이언트 양방향 통신
- 프로토콜
- SSE: HTTP 프로토콜을 기반
- WebSocket: 독립적인 웹소켓 프로토콜을 사용