WebSocket
<aside>
💡 기존의 단방향 http프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜.
</aside>
- 접속까지는 http 프로토콜 → 그 이후 통신은 자체적인 websocket 프로토콜!
http 프로토콜의 통신방식)
- 클라이언트가 먼저 요청을 보냄
- 그 요청에 따라 웹 서버가 응답하는 형태
- 웹 서버가 응답 보내고 끊음
→ 이런 통신방식은 효율이 떨어져 효율 개선방법이 존재!
polling
: 클라이언트가 평범한 HTTP Request를 서버로 계속 요청해 이벤트를 전달받는 방식.
- 가장 쉬운 방식이지만 지속적으로 요청하기 때문에 클라이언트 수 가 많아지면 서버의 부담 급증.
- 클라이언트의 빠른 응답을 기대하기가 어렵다.

long polling
: 클라이언트에서 서버로 일단 HTTP Request를 요청한 후
계속 기다리다가 서버에서 해당 클라이언트로 전달할 이벤트가 있다면 그 순간 Response 메시지를 전달하며 연결이 종료.
- 곧 다시 클라이언트가 HTTP Request를 요청해 서버의 다음 이벤트를 기다리는 방식.
- polling보다는 서버에 부담이 적지만, 시간간격이 좁다면 polling과 별 차이 없게 됨
- 다수의 클라이언트에게 동시에 이벤트 발생시 서버 부담 급증.