-
Websocket 이란 ?
- 웹 브라우저와 웹 서버 간 양방향 통신을 지원하는 프로토콜로 HTTP 와 달리 연결을 유지하고 있는 동안 서버와 클라이언트 간 데이터를 양방향으로 실시간 전송할 수 있다.
-
특징
- 양방향 통신
- 클라이언트와 서버 사이의 연결을 유지하며 양방향으로 데이터를 주고받을 수 있다.
- 이로 인해 전송 지연이 줄어들고, 실시간 데이터 처리를 효율적으로 할 수 있다.
- 단일 연결
- HTTP 와 달리 단일 연결을 통해 데이터를 주고 받는다.
- 이로 인해 불필요한 연결을 줄이고, 네트워크 부하를 최소화 할 수 있다.
- 포트 범용성
- HTTP 포트(80) 또는 HTTPS(443) 을 사용하여 연결하기 때문에, 방화벽 등의 추가 설정 없이도 대부분의 서버와 클라이언트에서 사용할 수 있다.
-
어떻게 작동이 되는가 ?
- 클라이언트가 서버에 Websocket 연결을 요청한다.
- 서버는 클라이언트의 요청을 확인하고, 연결을 수립한다.
- 연결이 수립된 이후에는 양방향 데이터 전송이 가능해진다.
- 연결이 필요 없어지면 클라이언트나 서버 중 하나가 연결을 끊을 수 있다.
-
Sticky session 이란 ?
- 웹 서버의 로드 밸런싱 기술 중 하나로, 클라이언트의 요청을 처리하는데 사용되는 개념이다.
- 클라이언트가 처음으로 서버에 연결되면 그 이후의 모든 요청은 동일한 서버로 전송되도록 하는 것을 의미한다.
-
왜 사용하는가 ?
- 로드 밸런서는 클라이언트의 요청을 여러 서버로 분산시키는 역할을 하는데, 클라이언트가 다음 요청을 보낼 때마다 다른 서버로 요청을 보내면 세션 또는 상태 정보가 유지되지 않는 문제가 발생할 수 있는데, 이러한 문제를 해결하기 위해 사용한다.
-
어떠한 원리로 ?
- 클라이언트가 처음으로 웹 서버에 연결되면, 로드 밸런서는 해당 클라이언트의 IP 주소나 쿠키를 기준으로 특정 서버에 할당하고, 이후 해당 클라이언트의 모든 요청은 같은 서버로 전송된다.
-
주의할 점 ?
- 서버 부하 분산이 고르게 이루어지지 않을 수 있다.
- 특정 서버에 모든 요청이 몰림으로써 해당 서버의 부하가 높아지기 때문이다.
- 리버스 프록시 ( Reverse Proxy ) 란 ?
- 웹 서버와 클라이언트 사이에 위치하여 클라이언트로부터 받은 요청을 서버로 전달하는 프록시 서버의 한 유형
- 서버 측에서 작동하며, 클라이언트가 서버로 직접 연결하지 않고 리버스 프록시를 통해 서버에 접근하게 된다.