IT/CS

[CS] Web Socket

어린이개발자 2023. 5. 16. 19:08

Web Socket 에 대한 정리가 필요하여 글을 포스팅 한다.

1. 정의

- TCP 접속에 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜 로써, 프로그램 간의 메시지를 교환하기 위한 통신 방법 하나

 

2. 특징

- 양방향 통신 (Full-Duplex)

  - 데이터 송수신을 동시에 처리할 있는 통신 방법

  - 클라이언트와 서버가 서로에게 원할 데이터를 주고 받을 있음

  - 통상적인 HTTP 통신은 Client 요청을 보내는 경우에만 Server 응답하는 단방향 통신

- 실시간 네트워킹 (Real Time-Networking)

  - 웹 환경에서 연속된 데이터를 빠르게 노출

  - Ex) 채팅, 주식, 비디오 데이터

  - 여러 단말기에 빠르게 데이터를 교환

- 최 접속 에서만 HTTP 프로토콜 위에서 Hand-Shaking 하기 때문에 HTTP Header 사용

- 웹 소켓을 위한 별도의 포트는 없으며, 기존 포트(HTTP - 80, HTTPS - 443) 사용

- 프레임으로 구성된 메시지라는 논리적 단위로 송수신

- 메시지에 포함될 있는 교환 가능한 메시지는 텍스트와 바이너리

 

3. 한계

- HTML5 이전의 기술로 구현된 서비스에서는 제한

  - 해결책) Socket.io, SockJS

    - HTML5 이전의 기술로 구현된 서비스에서 소켓처럼 사용할 있도록 도와주는 기술

    - Javascript 이용하여 브라우저 종류에 상관 없이 실시간 웹을 구현

    - 브라우저와 서버의 종류와 버전을 파악하여 가장 적합한 기술을 선택하여 사용

  - 문자열들을 주고 받을 있게 해줄 이상의 일을 하지 않음

  - 형식이 정해져 있지 않기 때문에 어플리케이션에서 쉽게 해석하기 어려움

    - Sub-Protocol 사용하여 주고 받는 메시지의 형태를 약속

 

4. 출처

https://www.youtube.com/watch?v=MPQHvwPxDUw&list=WL&index=15

[ 우아한 테크 - 10 테크톡, 코일의 Web Socket ]

'IT > CS' 카테고리의 다른 글

[CS] HTTP/1.1 과 HTTP/2  (0) 2024.03.17
[CS] Real-Time Web  (0) 2023.06.03
[CS] TCP vs UDP  (0) 2023.05.15
[CS] Hash Table  (2) 2023.05.14
[CS] Index  (0) 2023.05.13