CS 지식

Polling / Long Polling / Server Sent Event / Web Socket

Tommy__Kim 2023. 5. 2. 14:07

Server에서 발생한 Event들을 클라이언트에게 보내야 하는 상황이 종종 발생합니다. 

이러한 경우에 Polling / Long Polling / Server Sent Event / Web Socket을 사용할 수 있습니다. 

이번 장에서는 위 4개의 특징들에 대해 알아보고자 합니다. 

Polling

Polling 방법은 Client가 http request를 서버로 요청하여 이벤트 내용을 전달받는 방식입니다. 

Short Polling

Short Polling은 클라이언트가 주기적으로 서버에 요청을 보내는 방법입니다. 

일정 시간마다 서버에 요청을 보내 데이터가 갱신되었는지 확인하여 갱신된 값이 있다면 데이터를 응답받는 방식입니다. 

클라이언트, 서버 모두 구현이 간단합니다. 

서버가 요청에 대한 부담이 크지 않으며, 실시간성이 중요하지 않다면 사용할 수 있는 방법입니다. 

 

Long Polling

Long Polling은 요청을 보낸 후 서버에서 변경이 일어날 때 까지 기다리는 방법입니다.

실시간 메세지 전달이 중요하지만 서버의 상태가 빈번하게 변경되지 않는 경우에 적합한 방식입니다.

(상태가 빈번하게 바뀐다면 연결 요청이 늘어나게 됩니다.)

 

 

Server Sent Event

Server Sent Event 방식은 클라이언트와 서버가 한번 연결을 맺고 난 후 일정시간 동안 서버에서 변경이 발생할 때마다 데이터를 전송받는 방법입니다. 

Long Polling 방식에 비해 Server Sent Event는 다시 요청을 안해도 된다는 장점을 가지고 있습니다. 

Server Sent Event 방식은 서버에서 클라이언트로 text message를 보내는 브라우저 기반 웹 애플리케이션의 기술이며 

HTTP의 persistent connections을 기반으로 하는 HTML5 표준 기술입니다. 

 

WebSocket

WebSocket 방식은 클라이언트와 서버가 HTTP 기반으로 HandShaking을 한 후 ws프로토콜을 통해 상호간 응답을 하는 방법입니다. 

WebSocket은 채팅방과 같이 양방향 통신이 가능합니다.

앞서 설명했던 http 요청 응답 방식들은 요청한 클라이언트에게만 응답이 가능했습니다. 

WebSocket 방식의 경우 ws 프로토콜을 통해 웹소켓 포트에 접속해 있는 모든 클라이언트에게 이벤트 방식으로 응답을 할 수 있습니다. 

 

 


출처

[1] Tecoble

[2] Inpa tistory

 

'CS 지식' 카테고리의 다른 글

PubSub 구조에 대해서  (0) 2023.05.07
강타입 언어에 대해서  (0) 2023.05.05
REST API에 대해서  (0) 2023.05.04
OSI 7계층 TCP / IP 4계층  (0) 2023.04.21