클라이언트와 서버(== 브라우저[웹]와 서버)를 연결하고 실시간으로 통신이 가능하도록 하는 첨단 통신 프로토콜입니다. 하나의 TCP 접속에 전이중(duplex) 통신 채널을 제공합니다.
Duplex : 송수신이 양방향으로 가능하고, 동시에 송수신이 가능한 통신 방식
즉, 웹소켓은 소켓 연결을 유지한 채로 실시간으로 양방향 통신 or 데이터 전송이 가능한 프로토콜
Protocol : (통신 프토토콜) : 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
인터넷의 등장 후,
기존의 HTTP를 통한 통신은 단방향이었습니다.
단방향이라는 말은, 서버로부터 데이터를 가져오기 위해서는 오직 클라이언트가 서버로 요청을 보내는 경우에만 서버에서 클라이언트 측에 응답을 보내주어 데이터를 보내준다는 것을 의미합니다.
아주 예전에는 오로지 URL을 통해서만 요청을 하였습니다.
시간이 지남에 따라, 여기서 발전된 방식인 Ajax 통신으로 클라이언트가 XMLHttpRequest 객체를 이용해 서버에 요청을 보내고 응답을 받아오게 되었습니다. Ajax 통신을 통해서 페이지 전체를 요청하는게 아니라 데이터 요청을 이용해 부분적으로 정보를 업데이트 할 수 있게 되었습니다.
하지만 결국 Ajax 또한 HTTP를 이용하기 때문에 요청을 보내는 경우에만 응답이 온다는 단점이 존재했고
이러한 단점을 해소하고자 웹소켓이 등장하게 되었습니다.
어떤 경우에 HTTP 통신이 불편함을 초래할까요?