IT/Network

[네트워크] WebSocket

wakelight23 2024. 12. 10. 21:36

Web + Socket

소켓(Socket) :
  - 프로그램이 네트워크에서 데이터를 주고 받을 수 있도록 네트워크 환경에
    연결할 수 있게 만들어진 연결부

  - 사용되는 Protocol(규칙) : TCP/IP

  - OSI 계층 중 제 4 계층인 전송 계층(Transport Layer)의 주 단위

  - Socket = 엔드포인트, 통신의 양끝단

 

웹 소켓(WebSocket) :
  - 클라이언트와 서버 간의 양방향 통신을 위한 프로토콜(규칙)

  - 기존 HTTP 통신 방식과 달리, 웹소켓은 연결이 한 번 성립되면 실시간(LIVE~)으로
    양쪽에서 자유롭게 데이터를 주고 받을 수 있다

 

● HTTP와 WebSocket의 차이점

  ○ HTTP :
     - 클라이언트가 서버에 요청(Request) 보내고, 서버가 그 요청에 대한 응답(Response)

     - 클라이언트가 요청하지 않으면 서버에서 데이터 전송 방법 X

     - 즉, 단방향 통신이다

   

요청하고... 받아야되고... 단방향 통신

 

  ○ WebSocket:

     - 클라이언트와 서버 간의 지속적인 연결을 유지하며 양방향으로 데이터 자유롭게 교환 가능

     - 한 번 연결 성립되면, 클라이언트가 요청하지 않아도 서버에서 데이터를 Push할 수 있다

     - 실시간 통신이 가능해진다! → 양방향 통신이라 가능하다!

깔끔하다! 양방향 통신

 

WebSocket의 장점

양방향 통신 : 클라이언트와 서버 간에 언제든 데이터 주고받을 수 있다.

낮은 오버헤드 : HTTP와 달리 요청-응답 반복하지 않기 때문에 네트워크 자원 소모 덜함.

실시간 데이터 교환 : 주식 차트, 온라인 게임, 실시간 채팅 등.

더보기

IF...
- 주식 차트가 실시간 업데이트가 되지 않는다면?

- 메이플스토리, 로스트아크 등 실시간 라이브 서비스하는 게임에서 HTTP 통신으로 구성된다면?

- 디스코드 등 실시간 채팅 프로그램에서 나는 메세지를 보냈는데 서버가 HTTP 통신 방식이라면?

유지되는 연결 : 연결이 지속되므로, 데이터 전송 속도가 빠르고 연결에 대한 부담 적다.

 

WebSocket 동작 방식

핸드셰이크 : 웹소켓은 HTTP 요청을 통해 서버에 연결 요청.

                        서버가 승인하면, HTTP 연결이 WebSocket으로 전환

연결 유지 : 연결이 성립되면 클라이언트와 서버는 지속적인 연결 통해 데이터 교환 가능

양방향 데이터 전송 : 클라이언트나 서버는 언제든지 데이터 전송 가능 → 이벤트 기반으로 이루어진다.

● 연결 종료 : 더 이상 통신이 필요가 없을 때 연결 종료 가능. → 양쪽에서 연결을 끊을 수 있다.

 

HTTP와 WebSocket 비교표

  HTTP WebSocket
통신 방식 단방향 통신 양방향 통신
연결 지속성 요청 후 연결 종료 연결 유지
데이터 전송 방식 Request-Response 패턴 자유로운 데이터 송수신