Skip to content

Server-sent events

전통적으로 웹페이지는 새로운 데이터를 받기 위해 서버로 요청을 보내야만 합니다; 서버로 데이터를 요청하는 방식입니다. 하지만 Server-Sent Events 방식으로 웹페이지의 요청 없이도 언제든지 서버가 새로운 데이터를 보내는 것이 가능합니다. 이렇게 보내진 메시지는 웹페이지 안에서 Events + 데이터로 다룰 수 있습니다.

동작 원리

Flowchart_of_SSE.jpg

WebSockets 대신 Server-Sent Events 사용하기

실시간 웹 어플리케이션을 만들때 보통 웹소켓이 생각나겠지만 SSE도 간단한 대안이 될 수 있음

  • 웹 소켓의 문제점 : HTTP 기반이 아니기 때문에 HTTP의 수혜를 받지 못함
    • 압축 불가, HTTP/2 멀티플렉싱 지원 미비, Proxy 들이 지원 안함, 하이재킹 가능
  • Server-Sent Events(SSE)
    • 서버가 클라이언트에게 Low-Latency 푸시 이벤트를 보낼 수 있는 기능
    • HTML 표준이고 모든 브라우저가 지원함(IE 제외)
    • 웹소켓과 다르게 SSE는 서버에서 클라이언트 한 방향으로 흐름 (양방향 통신이 필요한 게임에는 맞지 않음)
    • HTTP 위에서 동작하며 별도 프로토콜이 필요 없음

See also

Favorite site