통신 방식


일반적으로 클라이언트 쪽에서 필요로 하는 데이터들은 Server에서 관리한다.

네트워크를 통해 서버로부터 데이터를 가져오기 위한 네트워크 통신 방식에는 크게 2가지로 나뉜다.

1. Http 통신2. Socket 통신


1. HTTP 통신


클라이언트의 요청(Request)이 있을 경우에만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식
  • HTTP 통신은 클라이언트의 요청(Request)이 있을 때만 서버가 응답(Response)하여 처리를 한 후에 연결을 종료하는 방식

  • 클라이언트가 요청(Request)을 보내는 경우에만 서버가 응답(Response)하는 단방향적 통신
    • 서버가 클라이언트로 요청(Request)을 보낼수는 없다
  • HTTP 통신은 실시간 연결이 아닌, 필요한 경우에면 서버로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이

  • 모바일 어플리케이션의 개발에 주로 사용됨

  • 비용 및 유지보수 등의 방면에서 좋다

예시

마이리얼트립 이라는 앱을 통해 여행지를 예약하려 한다.

그러려면 일단 내가 원하는 정보가 있고 그 정보를 포함하고 있는 콘텐츠가 있을것이다.

그 콘텐츠가 어떠한 이미지라고 가정하자. (그 이미지는 터치가 가능하며 그 이미지를 누르는 동시에 내가 원하는 정보를 볼 수 있다)

그 이미지를 내가 터치하는 동시에 모바일 앱은 서버로 내가 원하는 정보를 포함하고 있는 데이터를 보내달라고 요청한다.

그 이미지가 포함한 데이터를 받은 후에는 바로 연결이 종료된다.

그러므로 요청을 보낼때, 데이터를 기다리는 시간과 함께 연결하는 시간이 들어간다.


HTTPConnectImage


2. Socket 통신


서버와 클라이언트가 특정 포트(Port)를 통해 실시간으로 양방향 통신을 하는 방식
  • 서버와 클라이언트가 특정 포트(Port)를 통해 연결을 성립하고 있어 실기간으로 양방향 통신을 하는 방식

  • Socket 통신은 서버가 클라이언트로 요청(Request)를 보낼 수 있다

  • 연결을 계속 유지하는 연결지향형 통신

  • 실시간 통신이 필요한 경우에 자주 사용

  • 실시간 통신이 필요한 경우 Socket 통신이 아닌 HTTP 통신을 이용한다면, 실시간으로 계속해서 요청과 응답이 오고 가야 하므로 부하가 걸리게 된다.

예시

카카오톡이라는 메신저를 통하여 친구와 내가 실시간으로 메시지를 주고받는다.

트위치라는 플랫폼을 통하여 스트리머의 방송을 실시간으로 볼 수 있다.


SocketImage