HTTP 통신이란?
Hyper Text Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜.
웹브라우저에서 통신이 이루어지며, 처음에는 HTML 파일전송을 목적으로 만들어졌으나
현재는 JSON, Image 파일 또한 전송한다.
HTTP 통신 : 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 방식의 단방향 통신
- 일정 기간 동안 connection을 유지한 후에 끊음
- 초기에는 바로 connection을 끊었으나, connection을 맺고 끊는 비용이 비싸기 때문에 Keep Alive 옵셥을 통해 일정 기간 동안 connection 유지 후 끊는 방식으로 발전함
- 어플리케이션(Android or Ios)의 개발에 주로 사용됨
- 실시간 연결이 아니고, 응답이 필요한 경우에만 Server와 연결을 맺어 요청을 보내는 상황에 유용
Socket 통신이란?
소켓 : 두 프로그램이 서로 데이터를 주고 받을 수 있도록 양쪽 두 프로그램 모두에 생성되는 통신 단자
소켓 통신 : 서버-클라이언트 양방향 연결이 이루어지는 통신
- 계속 connection을 유지한다
- 스트리밍, 실시간 채팅 등 실시간으로 데이터를 주고받아야 하는 경우
- HTTP 통신에 비해 많은 리소스 소모 - 소켓 통신의 흐름 간단히 설명
- 서버 소켓에서 소켓을 생성하고 IP와 포트 번호를 설정한 후 클라이언트의 요청 수신을 기다림
- 클라이언트 소켓에서 연결 요청을 하면, 서버 소켓에서 해당 클라이언트 소켓과 통신하는 소켓을 생성하여 양방향 통신을 시작
- read, write로 서버-클라이언트 간 정보의 송수신이 이루어진다.
-연결 종료 시에는 각 소켓을 닫음
정리
- 클라이언트의 요청이 있을때만 서버가 응답하는 단방향 통신의 HTTP 통신 : connection 맺고 끊음이 적을때 리소스 절약 가능
- 서버-클라이언트 모두가 소켓을 생성하여 양방향 통신을 하는 소켓 통신 : 실시간 통신에 유리
'컴퓨터 이론 > 네트워크' 카테고리의 다른 글
[네트워크] 기술면접 질문목록 (0) | 2022.04.04 |
---|