client-Server 통신
: 클라이언트와 서버 간 데이터 전송
1. Http 통신
- Client가 Sever로 요청을 보냄(단방향적 통신)
즉, Sever는 Client에게 요청 보낼 수 없음
- 실시간 연결이 아닌 필요한 경우에만 Server로 접근
- Server는 응답을 보내주고 연결을 종료함 → 즉, 연결 필요할 때마다 다시 연결해야함
2. Socket 통신
- 특정 Port를 통해 연결 유지한 채로 실시간으로 통신(양방향적 통신)
- 채팅, 스트리밍 중계와 같이 실시간 통신이 필요한 경우 사용
polling 기법
: http의 단점(단방향적 통신임 → 서버에서 클라이언트로 요청 불가능) 보완하기 위해 일정한 주기를 가지고 서버와 응답을 주고 받는 기법
polling 특징
- 주기적으로 요청/응답이 이루어짐
- 실시간 전송을 불가능 → 요청/응답 주기를 짧게하면 가능하지만, 클라이언트와 서버에게 부담이 됨
- 보낼데이터가 없어도 데이터를 계속 전송해야함으로 서버의 리소스 낭비 발생
- 주기(시간)를 늘리면 실시간성이 떨어지고, 줄이면 서버에 큰 부하를 줌
long polling 기법
위의 문제를 해결하기 위해 http long polling 기법이 나옴
일반 polling 방식: 주기적으로 물어봄
long polling 방식: 일단 보내고 time out될 때까지 무한정 기다림
long polling 특징
- 항상 연결이 유지되어 있음
- 변경에 민감하게 반응함, 실시간 통신 가능
- 데이터가 주어지는 즉시 바로 반응하고 보냄
polling 기법 사용 예
ex) AI에 의해 처리된 이미지를 요청하는 경우
[참고자료]
Socket통신 vs http 통신