카테고리 없음

웹 소켓이란?

sorecord 2024. 10. 14. 21:00

웹 소켓(Web Socket)

WebSocket은 웹 앱과 서버 간의 지속적인 연결을 제공하는 프로토콜(TCP 기반)이다. 


특징

1. HTTP와는 달리, WebSocket 연결은 한 번 열린 후 계속 유지되므로, 서버나 클라이언트에서 언제든지 데이터를 전송할수 있다. (지속적인 연결) 

2. 서버와 클라이언트 간에 양방향 통신이 가능하다. 

3. 초기 핸드셰이크 이후에는 데이터 전송 시 헤더가 적어 대역폭을 절약할 수 있다. 이는 더 빠른 데이터 전송을 가능하게 한다.( = 적은 대역폭 사용이 가능)

 

위에서 말하는 데이터는 "프레임"의 형태로 전달된다. 

 

@핸드쉐이크 

2개의 통신장치 간에 연결을 설정하기 위한 초기 과정이다. 이 과정에서 서로의 존재를 확인하고 연결을 위해 필요한 정보(프로토콜, 버전 등)을 교환한다. 

 


한계점

  • 브라우저 지원: 웹 소켓은 HTML5 사양의 일부다. 즉, HTML5를 지원하지 않는 브라우저에서는 사용할 수 없다.
  • 서버 비용: 웹 소켓은 지속적인 연결을 유지하므로, 많은 수의 웹소켓 연결을 동시에 관리해야 하는 경우 서버의 부하가 증가할 수 있다.
  • 다양한 에러처리: 만약 연결이 끊어졌을 시 어떤 이유에서 연결이 끊어졌는지와 같은 상세한 에러 처리에 대한 한계가 있다. 웹소켓은 연결이 끊어진 이유에 대해서 정확히 알 수 없다.
  • 재연결 처리: 알 수 없는 에러로 인해 연결이 끊어지면 지속적인 연결을 해야 하는 웹 소켓 특성상 재연결을 할 수 있도록 구현해야 한다. 웹소켓은 자동으로 재연결을 진행하지 않는다.

동작과정

 

웹 소켓  request 

  • HTTP 버전은 1.1이상
  • 반드시 GET메서드를 사용
  • Upgrade정보는 서버, 전송, 프로토콜 연결에서 다른 프로토콜로 업그레이드 또는 변경하기 위한 규칙이다
  • Sec-Websocket-Key는 클라이언트가 요청하는 여러 서브 프로토콜을 의미한다

웹 소켓 response 

101 Switching Protocols가 Response로 오면 웹소켓이 연결 된 것이다

  • Sec-Websocket-Accept는 요청에서의 Key값을 계산한 값으로 신원 인증에 필요한 헤더이다

Message : 여러 frame이 모여서 구성하는 하나의 논리적 메시지 단위
Frame : communication에서 가장 작은 단위의 데이터, 작은 헤더 + payload로 구성
웹소켓 통신에 사용되는 데이터 : UTF8 인코딩

 


https://velog.io/@sj_yun/Web-Socket%EC%9D%B4%EB%9E%80

 

웹 소켓 (Web Socket)이란?

이번에 실무를 경험하게 되면서 처음으로 웹소켓을 사용하게 되었습니다. 실시간으로 CCTV 영상을 화면에 구현하기 위해 웹소켓을 사용하였습니다.웹 소켓의 역할만 두루뭉실하게 알고 있었던

velog.io

https://velog.io/@codingbotpark/Web-Socket-%EC%9D%B4%EB%9E%80

 

Web Socket 이란?

유튜브 [10분 테코톡] 🧲코일의 Web Socket을 정리한 웹소켓 과 웹소켓의 특징, 동작방법, 특이점 을 포함한 내용입니다

velog.io

https://yong-nyong.tistory.com/90

 

[Web] 웹 소켓(Web Socket)이란? 등장 배경과 목적, 동작 방식 (feat. Polling, Long polling, Server-Sent Event)

📖 들어가며이번 포스팅은 웹 소켓(Web Scoket)에 대한 포스팅을 하려고 합니다. 이 글을 읽으시는 분들은 아마 웹 소켓이 무엇인지 정도는 알고 있을 것이라고 생각합니다. 맞습니다. 실시간 통

yong-nyong.tistory.com

 


위의 사이트를 참고하여 작성한 공부글입니다. 문제시 비공개 처리하도록 하겠습니다. 피드백 환영합니다.