Computer Science/Network

웹소켓에 대해 알아보자

2mukee 2022. 12. 27. 21:06
320x100
320x100

웹소켓

: 클라이언트와 서버 사이에 전이중 TCP/IP 통신 채널을 제공하는 프로토콜

: 전송 프로토콜의 일종으로 서버와 클라이언트간 효율적인 양방향 통신을 지원

: 클라이언트는 서버로부터 실시간으로 최신의 데이터를 수신할 수 있음

 

 

 

웹소켓 탄생의 배경 (Ajax의 탄생)

: 인터넷이 등장하고 HTTP를 통해서 서버로 부터 데이터를 가져오기 위해서는 URL을 통한 요청이 유일한 방법이었음

: 때문에 서버로 데이터를 보내는 중간 과정에서 새로운 페이지 요청이 필요했음

: 이를 해결하기 위해 Ajax 통신이 등장했는데, 이는 클라이언트에서 XML Http Request 객체를 보내고 서버가 응답을 하는 방식임

: 페이지 요청이 아닌 데이터 요청이기 때문에 부분적으로 정보 갱신이 가능

: Ajax 뿐만 아니라 Rest API도 등장했고, 이들을 통해 동일한 페이지의 일부를 수정할 수 있게됨

: 페이지 이동 없이 페이지 내부 변화를 동적으로 일어나게 할 수 있어 자원과 시간을 아낄 수 있게됨

: 그러나, HTTP를 이용하기 때문에 서버로 요청을 보내야 응답이 온다는 한계점이 존재

: 데이터를 가져오기 위해 이벤트를 발생시키거나 일정 주기로 요청을 보내야하는 단점

: 이를 해결하기 위해 웹소켓이 탄생

 

 

 

 

웹소켓의 작동원리

: 서버와 클라이언트 간 HTTP 프로토콜을 통해 연결

: 연결이 정상적으로 이루어지면 서버와 클라이언트간 웹소켓 연결 수립

: 웹소켓 연결은 일정 시간이 지났을 때 자동으로 단절됨

 

 

 

웹소켓의 문제점

- 프로그램 구현에 보다 많은 복잡성 초래

: 웹소켓은 HTTP와 달리 stateful protocol이기 때문에 서버와 클라이언트 간 연결을 항상 유지해야하며 비정상적으로 연결이 끊어졌을때 적절히 대응해야함

 

- 서버와 클라이언트간 소켓 연결을 유지하는 비용 발생

: 트래픽 양이 많은 서버의 경우 CPU에 부담이 될 수 있음

 

- 오래된 웹 브라우저에서는 지원하지 않음

: sockJS 같은 라이브러리에서는 Fallback option을 지원한다고 함

 

 

 

 

 

 

Refference

 

[웹소켓] WebSocket의 개념 및 사용이유, 작동원리, 문제점

오늘은 웹소켓에 대해 알아보겠습니다. ● 웹소켓(WebSocket)의 배경 : 인터넷이 나오고 HTTP를 통해서 서버로부터 데이터를 가져오기 위해서는 오로지 URL을 통한 요청이 유일한 방법이었습니다. 때

choseongho93.tistory.com

300x250
728x90