pile·
네트워크·뷰노뷰노·

Web application에서 Server to Client통신

HTTP 는 단방향인데 서버가 클라이언트에 먼저 알려야 하는 상황을 어떻게 푸는지, polling 부터 WebSocket 까지 방식별 원리와 장단점을 정리한 글이다. 마지막에 "웬만하면 WebSocket, 다만 통신이 드물면 polling" 이라는 선택 기준까지 제시한다.

핵심 포인트
  • 필요한 상황의 예로 동일 사용자가 로그인했을 때 기존 클라이언트를 로그아웃시키는 경우, 비동기 작업이 끝났음을 알리는 경우를 든다.
  • polling 은 server push 가 아니라 client pull 이다. 일정 간격으로 요청해 이벤트 발생 여부를 확인하며, 구현이 쉬운 대신 매번 연결을 맺고 끊어야 한다.
  • comet 은 브라우저가 명시적으로 요청하지 않아도 데이터를 푸시할 수 있게 하는 모델이며, 구현 기술은 스트리밍 계열과 long polling 으로 나뉜다.
  • SSE 는 comet 을 표준화한 것으로 HTTP 기반이라 별도 라이브러리나 프로토콜이 필요 없지만 서버→클라이언트 단방향이다.
  • WebSocket 은 하나의 TCP 연결에서 full-duplex 통신을 하며, dataframe 헤더가 HTTP 헤더보다 작아 데이터를 주고받기에 유리하다.
상세 정리
  • hidden iframe 방식: script 태그는 응답이 완료돼야 실행되지만 iframe 은 완료 전에도 JavaScript 가 실행된다. 이 성질로 데이터를 스트리밍한다.
  • hidden iframe 의 장단점: 전송에 헤더가 붙지 않고 호환 범위가 넓지만, 에러 처리가 안 되고 브라우저 메모리에 데이터가 계속 쌓인다.
  • XMLHttpRequest 방식: `readyState` 로 진행 상태를 본다. 3 이면 새 응답이 왔다는 뜻이고 4 면 요청이 끝났다는 뜻이다.
  • XHR 의 장단점: 에러 처리가 되고 헤더에도 접근할 수 있지만, 일부 브라우저는 보안상 readyState 가 3 일 때 응답 결과 접근을 막는다.
  • long polling: 요청을 받아 두고 이벤트가 생길 때까지 응답을 미뤘다가 발생 순간 데이터와 함께 응답한다. 일반 polling 보다 서버 부하가 커질 수 있다.
  • SSE 동작: 클라이언트가 연결을 요청하면 서버가 전용 MIME type 으로 응답하고, 클라이언트는 연결을 끊지 않고 다음 응답을 기다린다.
  • WebSocket 동작: 최초 handshake 이후에는 서버든 클라이언트든 언제든 메시지를 보낼 수 있다.
  • 호환성: IE10 이전 버전은 WebSocket 을 지원하지 않는데 socket.io 라이브러리가 이를 해결해 준다고 짚는다.
  • 결론의 기준: 대체로 WebSocket 이면 되지만, 예컨대 1시간에 한 번 갱신이면 되는 경우에는 연결을 유지하는 비용이 새 연결을 만드는 비용보다 크므로 단순한 polling 이 낫다.
왜 읽나실시간 알림을 붙여야 하는데 무엇을 쓸지 정하지 못한 웹 개발자에게 선택지 전부의 원리와 비용을 한 번에 비교해 준다.
뷰노
뷰노 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 네트워크·cloudflare-blogCloudflare Blog·

    RFC 9234 BGP 롤 모델: 라우팅 누출 방지 표준 채택 현황 분석

    Cloudflare가 인터넷 BGP 라우팅 누출(route leak)을 프로토콜 수준에서 차단하는 RFC 9234 표준의 실제 채택 현황을 추적·분석했다. 이 표준은 BGP 세션에 역할(Role) 협상과 OTC(Only to Customer) 경로 속성을 추가해, 복잡한 운영자 정책 없이도 라우터 자체가 누출 경로를 자율적으로 거부할 수 있게 한다. 측정 과정에서 주요 Tier-1 사업자 2곳이 OTC 속성을 제거해 전파하는 문제가 발견됐다.

    요약 이어보기
    #network-security#bgp#internet-routing+2
  2. 네트워크·cloudflare-blogCloudflare Blog·

    일식이 인터넷 트래픽에 미친 영향: 아이슬란드·스페인·포르투갈 데이터 분석

    Cloudflare Radar가 2026년 8월 12일 20년 만에 유럽 본토를 가로지른 개기일식이 인터넷 트래픽에 미친 영향을 분석했다. 5분 단위 HTTP 요청 수를 직전 3주 수요일 중앙값과 비교해 일식 경로와 트래픽 감소 시점이 얼마나 정밀하게 일치하는지 정량화했다.

    요약 이어보기
    #traffic-analysis#cloudflare-radar#network-traffic+1