HTTP
- 브라우저와 서버가 http를 통해 통신할 때 통신 과정은 다음과 같다
- browser에서 server에 httpRequest(요청)을 보낸다.
- 요청을 받은 server는 brower에 요청에 해당하는 httpResponse(응답)을 보낸다.
- 통신이 종료된다.
- http 통신의 경우 server는 browser의 요청을 받아야만 응답할 수 있고 server가 주체적으로 browser에 데이터를 보낼 수 없다.
- server의 응답 후에는 http 통신이 종료되기 때문에 실시간으로 데이터를 업데이트해주기 위해서는 일정 시간 간격으로 계속해서 요청을 보내야 한다.
WebSocket
- WebSocket(WS)은 http 방식과는 다르게 Connection Open-Close 여부에 따라 통신한다.
- browser와 server를 연결하는 WS이 open 상태이면 browser와 server가 자유롭게 통신 가능하다.
- 따라서 server도 실시간으로 update되는 정보를 browser에 주체적으로 보낼 수 있게 된다.
- WS는 server의 모든 통신을 추적하기 위해 메모리 파워가 중요하다.
- user가 많을 수록 서버 비용이 많이 들고, 서버가 내려가면 통신이 불가능하게 된다.
WebRTC
- webRTC는 Server를 통하지 않고 browser간의 연결을 가능하게 한다. → P2P!! 따라서 JS만으로도 구현 가능하다..
- peer가 많을 수록 그 수만큼 Data를 업로드하고, 다운로드 해야하므로 확장성에 제약이 있다.
출처 : YouTube 노마드 코더 Nomad Coders <WebRTC? WebSockets? 5분 개념정리!>