WebSocket

WebSocket이란?
- 웹 소켓 프로토콜인 RFC 6455는 단일 TCP 연결을 통해 Client와 Server사이 전이중 방향 통신 채널을 설정하는 표준화된 방법을 제공함
- Spring에서 Web에 속해있으며, Spring 4.0에 등장한 네트워크 서비스
Web Socket과 TCP
- 웹 소켓은 연결 요청에 대해 HTTP를 통해 Switching 및 Handshaking이 이루어짐
- TCP는 이진(Binary)데이터만 주고받을 수 있으나, 웹 소켓은 Binary와 Text 데이터도 주고 받을 수 있다.
Web Socket과 HTTP
- 웹 소켓은 HTTP 호환이 가능하게 설계되었고, HTTP 요청으로 시작하나 두 Protocol의 아키텍쳐와 Application Programming Model은 매우 다름
Web Sockek의 특징
- HTTP 통신의 단점 개선
- 영구적 양방향 통신
- HTML5의 주요 API
- HTTP 프로토콜을 기반으로 하는 웹 브라우저의 웹 서버간 양방향 통신을 지원하기 위한 표준
- Client/Server가 실시간으로 데이터를 주고 받을 수 있다.
WebSocket 접속 과정

- 웹소켓 열기 핸드셰이크는 클라이언트가 먼저 핸드셰이크 요청을 보내고 이에 대한 응답을 서버가 클라이언트로 보내는 구조이다. 서버와 클라이언트는 HTTP 1.1 프로토콜을 사용하여 요청과 응답을 보낸다.