데이터 통신 방식

·2022년 11월 8일
0

Network

목록 보기
4/7

Pull

클라이언트가 필요한 리소스를 서버에 요청하면 서버는 그에 대해 응답
기본적인 클라이언트-서버 모델의 동작이며, 항상 새로운 요청을 보내는 쪽은 클라이언트

Push

push server는 클라이언트의 요청이 오면 응답해주는 방식이 아닌, 서버가 클라이언틍에게 공지사항과 같은 무엇인가 통지해주기 위한 방법이다.
클라이언트의 요청이 없어도 서버는 클라이언트에게 응답하는 방식이다.

HTTP는 상태가 없기 때문에 HTTP프로토콜 특성상 웹환경에서는 동작하는데 한계가 있다. 또한 클라이언트가 서버에 요청을 보내고 응답을 받으면 연결이 끊어지게 된다. 이러한 문제를 해결하기 위해 Polling, Long-Poling, Streaming이 고안되었다.

Polling

일정한 시간 간격을 두고 클라이언트에서 서버로 계속 요청을 보내는 것
서버에서는 클라이언트의 요청을 받고 이벤트가 발생하면 바로 응답을 하고 HTTP 연결이 끊어지게 되므로 일정 간격을 두고 계속 클라이언트가 요청을 보내야 한다.

클라이언트가 서버에게 주기적으로 새로운 데이터가 있는지 요청을 보내는 것이며 요청에 대한 서버 부담이 크지 않거나 실시간성이 중요하지 않은 서비스라면 이 방식을 채택해도 문제가 없다. 그러나 실시간성이 중요해져 요청 주기가 짧아지면 서버에 크 부담을 줄 수 있다.

Long Polling

연결이 이루어지고 난 다음, 서버에서 이벤트가 발생할 때까지 응답을 보류한다.
이벤트 발생 시점에 클라이언트에게 응답하기 때문에 불필요한 연결을 줄일 수 있다.
서버의 응답을 무한정 기다리는 것이 아니고, 특정 시간이 지나면 해당 요청을 완료하고 다시 새롭게 요청하는 방식으로 진행되며 Polling방식과 마찬가지로 서버로부터 응답을 받게 되면 연결이 끊기게 된다.

Streaming

클라이언트로부터 요청이 있고 난 후, 응답하지 않고 필요할 때마다 계속 데이터를 보내는 방식
서버의 상태 변경이 매우 잦은 경우 적합하며, 요청이 들어간 후 해당 응답 스트림을 통해 서버에서 데이터가 계속 전송된다.
스트리밍 방식이라고 무한정 연결을 지속하지는 않으며, 일정 시간을 정해두고 그 시간이 지나면 요청을 끊고 다시 새로운 연결을 생성한다.

<참고 :
https://swdevelopment.tistory.com/147 >

profile
개발을 개발새발 열심히➰🐶

0개의 댓글