본문 바로가기

안드로이드/Android Studio

[ Android ] HTTP 통신과 소켓 통신이란?

안녕하세요 gyub(귭)입니다 ㅎㅎㅎ

 

이번엔 HTTP와 소켓 통신에 대해 다뤄보려 합니다!

 

1. HTTP 통신

HTTP 통신은 단방향 통신입니다.

 

단방향 통신이란?

말 그래도 '단'방향 한 쪽으로만 통신을 한다 라고 이해 하시면 될 것 같아요

예를들면

클라이언트가 서버에게 요청을 보내고 나서 그담에 서버가 응답을 주고

연결을 마무리 짓습니다. 이런 방식이에연

( HTTP 통신에서 서버는 클라이언트한테 요청을 못 보내요 ㅠㅠ )

대표적으로는 홈페이지가 있겠네요!

gyub의 블로그를 클릭했어요(클라이언트) -> gyub의 블로그 클릭에 대한 응답을 줄게여 (서버)

-> 와!! 블로그가 보이네? (클라이언트)

이런식입니다!

쫌 B급 설명같지만 그렇습니다 ㅠ,,,,

 

 

2. 소켓 통신

소켓 통신은 양방향 통신입니다

 

양방향 통신은 또 말 그대로 '양'방향으로 통신한다 라고 이해하시면 됩니다.

클라이언트와 서버가 특정 포트를 통해 연결을 합니당

즉, HTTP와 다르게 서버도 클라이언트에게 요청을 보낼 수 있고, 계속 연결을 유지하는 

연결지향형 통신입니다.

 

대표적으로 스트리밍 중계가 있겠네요!

롤 중계가 보고 싶어서 유튜브에 들어갔어요!

롤 중계 영상을 한 번 틀어놓으면 우리가 별 다른 액션을 취하지 않아도 영상이 생중계로 쭉 나오잖아요??

그런 느낌입니다!!!!!

HTTP 통신과 비교해서 보면

만약 롤 중계 영상 보는 방식을 HTTP방식으로 한다면 우리는 쉴틈없이 영상 나와라!!!버튼을 눌러야될꺼에요 혹은 새로고침을 쉴틈없이 한다던가?? 이러면 귀찮을뿐더러 ... 사실 귀찮음보단 쉴틈없는 클라이언트의 요청에 

서버가 과부하에 걸려 살아날 수 가 없어요 ㅠㅠㅠ 죽어요 그냥

그래서 각기 다른 통신방식을 사용하는 겁니다!

 

홈페이지도 소켓통신의 스트리밍 예시처럼 반대로 생각해보시면 

우린 그냥 gyub 블로그 누르고 한번 응답을 받고 끝내면 되는데 얘가 똑같은 걸 계속 보여줘요,,, 그럴 필요 없잖아요?

그렇게 되면 또 과부하가 일어납니다,,

 

 

반응형