본문 바로가기
게시판

WebSocket 웹 소켓📡

by Seolyu 2024. 6. 16.

 

웹소켓

 

웹소켓

웹소켓클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜이다

 

 

전통적인 HTTP 통신

HTTP(Hypertext Transfer Protocol)는 클라이언트(ex. 웹 브라우저)가 서버에 요청(request)을 보내면 서버가 응답(response)을 보내는 방식으로 동작한다

이 방식은 기본적으로 클라이언트가 먼저 요청을 보내야만 서버가 응답하는 단방향 방식이다

 

그렇기에 클라이언트가 서버로부터 데이터를 받으려면 먼저 요청을 보내야하므로,

데이터를 실시간으로 받아야 하는 상황에서는 부적합하다

빈번한 요청으로 인해 네트워크 트래픽이 증가되고 서버에게 부담이 된다

실시간 통신에는 조금 느리고 비효율적인 것이다

 

SSE와 웹소켓

SSE(Server-Send Events)는 서버가 클라이언트에게 단방향으로 지속적인 업데이트를 전송할 수 있는 기술이다

클라이언트가 서버에 한 번 연결되면 서버는 지속적으로 데이터를 보낼 수 있다

비록 HTTP 기반이지만, 연결을 유지하므로 실시간 데이터 업데이트에 매우 유리하다

 

예를 들어,

뉴스 웹사이트에서 새로운 기사가 올라올 때마다 실시간으로 사용자에게 알림을 보낼 수 있다

주식 거래 사이트에서는 실시간으로 주가 변동을 사용자에게 전달할 수 있다

날씨 애플리케이션에서도 실시간으로 기상 변화를 전송하는 데 SSE가 사용될 수 있다

 

웹소켓(WebSocket)은 클라이언트와 서버 간의 양방향 통신을 가능하게 해주는 프로토콜이다

웹소켓 연결은 HTTP 핸드셰이크로 시작하며, 한 번 연결이 성립되면 양쪽에서 자유롭게 데이터를 주고받을 수 있다

실시간 데이터 교환이 필요한 다양한 애플리케이션에서 활용되는데

 

예를 들면,

슬랙이나 디스코드와 같은 채팅 애플리케이션에서의 실시간 채팅,

플레이어 간의 실시간 데이터 교환인 필요한 온라인 게임,

이메일, 소셜 미디어 알림, 작업 관리 애플리케이션에서 중요한 이벤트가 발생할 때 사용자에게 즉시 알릴 수 있는 경우가 있다

 

웹소켓

웹소켓 연결은 다음과 같은 핸드셰이크 과정을 통해 시작된다

  1. 클라이언트의 요청
    •    클라이언트가 HTTP 요청 헤더에 Upgrade: websocket 을 포함시켜 서버에 연결을 요청한다
  2. 서버의 수락
    •    서버는 이 요청을 수락하면 101 Switching Protocols 응답을 보낸다
  3. 프로토콜 업그레이드
    •    HTTP 연결이 웹소켓 프로토콜로 업그레이드되며, 양방향 통신이 시작된다

 

웹소켓의 장점은,

  •    양방향 통신
    •    클라이언트와 서버 모두 데이터를 자유롭게 주고받을 수 있어 실시간 상호작용이 가능하다
  •    실시간 통신
    •    데이터 교환 시 지연이 거의 없어 빠른 반응이 필요한 애플리케이션이 적합하다
  •    효율성
    •    웹소켓은 지속적인 연결을 유지하며, 불필요한 HTTP 헤더 정보가 반복적으로 전송되지 않기 때문에 네트워크 자원을 효과적으로 활용할 수 있다

'게시판' 카테고리의 다른 글

자바스크립트 Scope  (0) 2024.06.16
자바스크립트 주요 개념  (1) 2024.06.08
프론트엔드 성능 최적화  (0) 2024.06.06
Tensorflow 딥러닝 AI 공부하기  (0) 2024.03.24
Flutter로 앱 만들기 공부  (0) 2024.03.24