1.4.3 웹 소켓
HTTP 통신은 클라이언트가 먼저 요청해야만 서버의 응답을 받을 수 있습니다. 클라이언트의 요청이 없으면 서버는 응답할 수 없는데, 이를 단방향 통신이라고 합니다.
그러나 웹 소켓(web socket)을 이용하면 클라이언트의 요청 없이도 서버가 일방적으로 데이터를 보낼 수 있습니다. 반대로 클라이언트도 연결이 유지되는 동안 서버의 응답을 기대하지 않고 데이터를 일방적으로 보낼 수 있는데, 이를 양방향 통신이라고 합니다.
웹 소켓은 HTTP 통신의 한계를 보완하기 위해 등장한 기술로, 클라이언트와 서버 간의 양방향 통신을 가능하게 합니다. 다만 이 기술을 사용하더라도 클라이언트와 서버를 처음 연결할 때는 HTTP를 사용하며, 두 기기가 일단 연결되면 그 이후부터는 더 이상 HTTP를 사용하지 않고 웹 소켓 기술로 통신합니다.
웹 소켓 기술은 실시간으로 메시지를 주고받는 채팅 애플리케이션에 주로 사용됩니다. 또한 이메일 알림, 댓글 알림 서비스처럼 클라이언트에게 실시간으로 서버의 변화된 상황을 알려줘야 할 때도 유용합니다.