웹소켓(WebSocket)은 실시간 양방향 통신을 위한 컴퓨터 통신 프로토콜이다.
Polling
일반적인 HTTP 프로토콜은 클라이언트가 서버에 요청을 보내고, 서버는 클라이언트에 응답을 보내는 단방향 통신 방식이다.
이는 클라이언트의 요청이 있기 전까지 서버 변화에 대한 내용을 알 수 없다는 것을 의미한다.실시간적인 서버 변화를 동기화 하고자 한다면 클라이언트가 지속적인 요청을 통해 응답을 받아와야 한다는 것이다.
클라이언트가 직접 요청을 보내는 작업을 하게 된다면 누가 그 서비스를 이용할까..
물론 직접하지 않고도 일정 간격으로 서버에 지속적인 요청을 보내게만 한다면 동기화를 구현할 수 있다. 하지만 사용자가 늘어남에 따라 서버 부하가 증가한게 된다.
이처럼 지속적인 요청을 보내게 하는 방식을 polling방식이라고 한다.
웹소켓
웹소켓은 클라이언트와 서버 간에 지속적인 연결을 유지하고, 양방향으로 데이터를 주고받을 수 있다.
클라이언트와 서버는 웹소켓 연결을 설정하고나면 웹소켓을 통해 서버에서 클라이언트로 데이터를 보낼 수 있게 되고, 기존의 클라이언트에서 서버로의 요청도 가능하다.
이는 채팅, 업데이트, 알림 기능 등 실시간적인 구현을 할 수 있게 된다는 것이다.하지만 웹소켓을 설정한 페이지를 벗어나게 되면 연결은 끊어지게 되기에 SPA를 지원하는