통신

HTTP 통신 vs Socket 통신

태인킴 2020. 12. 18. 22:56
반응형


1. HTTP 통신

Client의 요청이 있을 때만 서버가 응답 하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식 입니다. 이러한 연결 방식은 Client가 요청을 보내는 경우에만 Server가 응답하는 단방향적 통신으로, Server가 Client로 요청을 보낼수는 없습니다. 따라서, 요청을 기다리는 시간 + 연결 시간 + 연결을 해제 하는 시간이 들어가게 됩니다. 이러한 Http 통신은 실시간 연결이 아닌, 필요한 경우에만 Server로 접근하는 컨텐츠 위주의 데이터를 사용할 때 용이 합니다. 예로는 모바일 어플리케이션은 필요한 경우에만 Server로 정보를 요청하는 경우가 있습니다.

 

- Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신 입니다.

- Server로 부터 응답을 받은 후에는 연결이 바로 종료 됩니다.

- 요청을 보내 Server의 응답을 기다리는 어플리케이션의 개발에 주로 사용 됩니다.

 

 

2. Socket 통신

Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식 입니다. HTTP 통신과 달리, Server와 Client가 특정 Port를 통해 연결을 성립 합니다. 실시간으로 양방향 통신을 하는 방식 입니다. Client만 필요한 경우에 요청을 보내는 HTTP 통신과 달리, Socket 통신Server 역시 Client로 요청을 보낼수 있으며, 계속 연결을 유지합니다. 예를 들면, 실시간 Streaming 동영상 중계실시간 채팅과 같이 즉각적으로 정보를 주고받는 경우에 사용 합니다. 

 

- Server와 Client가 계속 연결을 유지하는 양방향 통신 입니다.

- Server와 Client가 실시간 데이터를 주고받는 상황이 필요한 경우에 사용 됩니다.

- 실시간 동영상 Streaming이나 온라인 게임 등과 같은 경우에 자주 사용 됩니다.

 

 

3. 네트워크 소켓

네트워크 소켓은 컴퓨터 네트워크를 경유하는 '프로세스 간 통신(IPC)'의 종착점 입니다. 

네트워크 소켓은 다음과 같은 요소들로 구성되어 있습니다.

- 인터넷 프로토콜(TCP, UDP, raw IP)

- 로컬 IP 주소 / 로컬 포트

- 원격 IP 주소 / 원격 포트

 

 

4. 네트워크 소켓의 타입

- TCP 프로토콜을 사용하는 경우

- UDP 프로토콜을 사용하는 경우

 

 

5. Socket API 실행 흐름

반응형