본문 바로가기

컴퓨터 이론/네트워크

[네트워크] HTTP 통신 vs. Socket 통신 차이점

 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