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 |