[개요]
우리가 웹프로그램을 작성할때 보통은 2가지의 통신을 사용한다.
1. Http 통신
2. Socket 통신
과연 이 둘의 차이는 무엇이고 언제 사용을 해야하는 것일까?라는 의문에서 이것저것 찾아서 공부해보았다.
[Http 통신]
- 일반적으로 Http 통신은 Client의 요청이 있을 때만 서버가 응답을 해주고 해당정보를 보낸 후에 바로 연결을 끊는 방식이다
보통 많은 웹사이트들이 이 방식을 채택하고 있다. 이 방식은 실시간으로 변화되는것을 확인할 수 없고, 새로고침(F5)를 눌렀을때만 변화되는 것을 확인할 수 있다. 예를들어서 인스타그램같은 경우 처음 접속한 후에 위를 잡아 당겨야지 새로운 사진이 주르르륵 나오는 것처럼 새로고침(인스타그램에서는 상단을 한번 잡아당기는것)이라는 요청을 주어야지 서버가 다시 작동하여 Client에게 새로운 정보를 보여준다.
이 통신은 서버의 부하를 줄여서 다른 접속을 원활하게 처리하기 위함이다. 왜 서버의 부하가 줄어들까? 생각해보면 꽤나 쉽게 이해할 수 있다. 한번 요청에 한번만 응답하면 되기 때문에 하나하나 신경쓸 필요가 없게 되기 때문이다.
[ Http 통신의특징 ]
Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신이다.
Server로부터 응답을 받은 후에는 연결이 바로 종료된다.
실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용하다.
요청을 보내 Server의 응답을 기다리는 어플리케이션(Android or Ios)의 개발에 주로 사용된다
[Socket 통신]
Socket 통신은 Http방식과는 다르게 요청을 보내지 않아도 계속적으로 상태변화에 따라서 실시간으로 통신을 하고 있는 상태이다. 예를 들면 실시간스트리밍서비스, 채팅서비스, 온라인게임이 있다. 이들의 공통점은 사용자가 혹은 상대방이 지속적으로 보내는 정보를 실시간으로 받아서 변화를 보여주어야한다는 특징이 있다. 뭐...아프리카나 혹은 유튜브 라이브 스트리밍, 인스타그램 라이브 이런것들을 보면 Client가 서비스를 끄지 않는 이상 방송을 하는 상대방의 영상이 지속적으로 변화하는것이 좋은 예시다..
[ Socket 통신의 특징 ]
Server와 Client가 계속 연결을 유지하는 양방향 통신이다.
Server와 Client가 실시간으로 데이터를 주고받는 상황이 필요한 경우에 사용된다.
실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용된다.
'프로그래밍 > 네트워크' 카테고리의 다른 글
[네트워크]라우터란?라우터의 구조::우주를놀라게하자 (0) | 2019.08.08 |
---|---|
[네트워크]인터넷이란? 인터넷의구조::우주를놀라게하자 (0) | 2019.08.08 |
[네트워크] 라우팅이란? 무엇인가? ::우주를놀라게하자 (0) | 2019.08.03 |