HTTP 통신과 Socket 통신의 차이점

P.W.J·2023년 6월 14일
0

BackEnd

목록 보기
4/5

HTTP 통신이란?

  • HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가진다.
  • 웹브라우저에서 통신이 일어나며, 초기에는 HTML 파일을 전송하려는 목적으로 만들어졌으나 현재는 JSON, Image파일 등 또한 전송이 가능하다고 한다.

HTTP 통신의 통신 방식

💡 단방향 통신

클라이언트의 요청이 있을 때 서버가 응답하는 방식.

소켓 통신이란?

💡 양방향 통신
  • 소켓이란 두 프로그램이 서러 데이터를 주고 받을 수 있도록 양쪽에 생성되는 통신 단자이다.

  • 소켓 통신이한 서버와 클라이언트 양방향 연결이 이루어지는 통신으로 클라이언트와 서버 모두 요청을 보낼 수있는 통신이다.

클라이언트와 서버 양쪽에서 서로에게 데이터 전달을 하는 방식

HTTP 통신과 소켓 통신의 차이점

(1) HTTP 통신

  • 클라이언트의 요청이 있을 때만 서버가 응답
  • JSON, HTML, Image 등 다양한 데이터를 주고 받을 수 있음
  • 서버가 응답한 후 연결을 바로 종료하는 단방향 통신이지만 Keep Alive 옵션을 주어 일정 시간동안 커넥션을 유지할 수 있다.
  • Keep Alive의 시간을 너무 길게 설정하면 통신을 하지 않는 세션이 지나치게 많아진다. → 너무 많은 세션을 유지하는 것만으로도 시스템에 부하가 된다.
  • 실시간 연결이 아닌 데이터 전달이 필요한 경우에만 요청을 보내는 상황에 유리하다.

(2) 소켓 통신

  • 클라이언트와 서버가 특정 포트를 통해 양방향 통신을 하는 방식
  • 데이터 전달 후 연결이 끊어지는 것이 아니라 계속해서 연결을 유지 → HTTP에 비해 더 많은 리소스 소모한다.
  • 클라이언트와 서버가 실시간으로 계속하여 데이터를 주고받아야하는 경우에 유리하다
  • 실시간 동영상 스트리밍이나 온라인 게임 등에 사용

0개의 댓글