Polling vs Websocket

Nam Eun-Ji·2020년 11월 29일
0

기존 양방향 통신 방법

웹소켓 방식 이전에는 마치 실시간인 것처럼 작동하게 하는 방법들이 있었다.

Polling 폴링방식

클라이언트가 n초 간격으로 request를 서버로 계속 날려서 response를 전달받는 방식이다. HTTP는 단발성 통신이기때문에 header가 매우 무거운 프로토콜 중 하나로 이 프로토콜이 계속해서 request를 날리면 서버의 부담이 증가한다. 그렇다고 초 간격을 늘린다면 실시간성이라고 볼 수 있을까?하는 의문에 빠진다.

Long Polling 롱폴링방식

HTTP로 일단 request를 보내놓고 timeout날 때까지 기다리다 중간에 보낼 데이터가 있다면 response를 보내주는 방식이다. 그럼 클라이언트는 곧바로 다시 HTTP request를 보내놓고 또 기다린다. 일반 polling 방식보다는 서버의 부담이 줄겠지만 데이터 업데이트가 빈번해진다면 일반 polling방식과 큰 차이가 없다.


WebSocket

  • 웹소켓은 클라이언트와 서버가 양방향 통신을 하는 방식으로 실시간 통신이 가능하다.
  • 웹소켓을 사용하기 위해서는 WS라는 프로토콜을 이용한다. WS 프로토콜을 사용하기 위해서는 HTTP에서 Websocket으로의 프로토콜 전환(WebSocket HandShake)을 거쳐야한다.
profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글