WebSocket이란?
컴퓨터 네트워크용 통신 규약의 하나이다. (ws://)
인터넷의 표준화 단체인 W3C(World Wide Web Consortium) 와 IETF(Internet Engineering Task Force) 가 Web server 와 Web browser 간의 통신을 위한 규정을 정의한 쌍방향통신(Duplex)용 기술 규약이다.
API는 W3C가 책정을 맡고 있고, WebSocket 프로토콜은 IETF가 책정을 맡고 있다.
WebSocket의 등장 배경
초기 웹의 탄생 목적은 문서 전달과 하이퍼링크를 통한 문서 연결이었다.
웹을 위한 HTTP 프로토콜은 이러한 목적에 매우 부 합하는 모델이다.
그러나 시대가 변하고 환경이 발전할 수록 웹이 더 이상 문서공유에만 집중할 수 없었다.
갈수록 동적인 표 현과 뛰어난 상호작용이 요구되었고 이로 인해 여러 새로운 기술이 탄생되었다.
플래시(플렉스), 자바애플릿(자바FX), ActiveX , 실버라이트 등을 들 수 있다.
하지만 이들은 웹에서 화려한 동작과 뛰어난 상호작용을 보장하지만 순수 웹 환경이 아니라 별도의 런타임을 플러그 인 형태로 브라우저에 설치해야 사용 가능하다.
HTML5는 그 주요 목적 중 하나인, 플러그 인 없 는 일관되고 표준화된 웹 응용 환경이라는 기치하에 많은 참신한 스펙들이 개발되었다.
그 중 순수 웹 환경에서 실시간 양방향 통신을 위한 스펙이 바로 WebSocek 이다.
웹(Web)의 실시간(양방향) 통신을 위한 그동안의 노력.
웹(Web)의 진정한 실시간(양방향) 통신, WebSocket의 등장.
WebSocket은 웹 서버와 웹 브라우저가 지속적으로 연결된 TCP 라인을 통해 실시간으로 데이터를 주고 받을 수 있도록 하는 HTML5의 새로운 사양이다.따라서 WebSocket을 이용하면 일반적인 TCP소켓과 같이 연결지향 양방향 전이중 통신이 가능하다.
WebSocket 소켓이 필요한 다섯가지 경우.
실시간 양방향 데이터 통신이 필요한 경우.
많은 수의 동시 접속자를 수용해야 하는 경우.
브라우저에서 TCP 기반의 통신으로 확장해야 하는 경우.
개발자에게 사용하기 쉬운 API가 필요할 경우.
클라우드 환경이나 웹을 넘어 SOA(Service Oriented Architecture) 로 확장해야 하는 경우
WebSocket을 사용하면 기존 방식처럼 HTTP 요청과 관련된 오버헤드 없이 원하는 만큼의 데이터를 전송할 수 있습니다.
데이터는 WebSocket을 통해 메시지로 전송되며 각 메시지는 전송중인 데이터(페이로드)를 포함하는 하나 이상의 프레임으로 구성됩니다.
메시지가 클라이언트에 도달 할 때 올바르게 재구성 될 수 있도록 하기 위해
각 프레임에는 페이로드에 대한 4 ~ 12바이트의 데이터 프리픽스가 붙습니다.
이 프레임 기반 메시징 시스템을 사용하면 전송되는 비(非) 페이로드 데이터의 양이 줄어 지연 시간을 크게 낮출 수 있습니다
'개발 > 서버프로그래밍' 카테고리의 다른 글
포트 open 확인 (0) | 2022.09.06 |
---|---|
Websocket Connection fail 이슈확인 (0) | 2022.09.06 |