웹개발/Spring
[Spring] 웹소켓이란??
알버트
2022. 3. 16. 17:01
1. 웹소켓이란?
- 두 프로그램 간의 메시지를 교환하기 위한 통신 방법 중 하나이다.
- 전이중 통신을 가능하게 해준다.
- W3C와 IETF에 의해 자리잡은 표준 프로토콜 중 하나이다.
- 현재 HTML5 환경에서 많이 사용된다.
2. 웹 소켓의 특징
- 양방향 통신(Full-Duplex)
- 데이터 송수신을 동시에 처리할 수 있는 통신 방법
- 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받는다.
- 통상적인 HTTP 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신
3. 실시간 네트워킹(Real Time-Networking)
- 웹 환경에서 연속된 데이터를 빠르게 노출한다.
- 여러 단말기에 데이터를 빠르게 교환한다.
- 예를 들면 채팅, 주식, 비디오 데이터와 같이 실시간 처리가 필요한 프로세스들을 웹소켓으로 사용할 수 있다.
4. 웹 소켓 이전의 비슷한 기술
- Polling : 일정 주기로 요청을 송신하는 것.
실시간 네트워킹에서는 언제 통신이 발생할지 예측이 불가능하므로 불필요한 요청과 연결을 생성한다.
즉 바뀐게 없는데도 요청을 계속하고 응답도 계속 한다.
- Long Polling
Polling의 단점을 해소하기 위해서 서버에서 조금 더 대기를 하면서, 이벤트가 발생할 때 응답을 하는 방식
응답을 받으면 끊고 다시 재요청한다. 결국 많은 양의 메시지가 쏟아지면 Polling과 동일해진다.