팀프로젝트에서 실시간채팅창 구현을 맡게 되면서 Websocket라는 것에 대하여 공부해야겠다라는 생각이 들었다.
HTTP와 WebSocket 둘 다 프로토콜이다.
http는 유저가 요청을 보내면 서버가 응답을 보내고 요청과 응답의 반복이다.
http의 중요한점은 stateless기 때문에 백엔드(서버)는 유저를 기억하지 못한다.
즉, 요청과 응답 과정 뒤에 백엔드는 유저를 잊어버린다.
websocket은 브라우저가 서버에 요청을 보내면 서버는 거절하거나 수락을 한다. 수락을 했다면 서로 악수한거처럼 연결이 된다. 그래서 서버는 유저를 알 수 있다. 그래서 서버는 요청이 없어도 응답을 보낼 수 있다. 즉, 브라우저는 서버에게 어떤 때나 메세지를 보낼 수 있고 서버도 마찬가지다. 즉, 나와 Wi-Fi를 생각하면 된다. 연결 끊기 전까지 계속 연결되어있다.
웹 소켓의 특징