HTTP 통신이란?
- HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미를 가진다.
- 웹브라우저에서 통신이 일어나며, 초기에는 HTML 파일을 전송하려는 목적으로 만들어졌으나 현재는 JSON, Image파일 등 또한 전송이 가능하다고 한다.
HTTP 통신의 통신 방식
💡 단방향 통신
클라이언트의 요청이 있을 때 서버가 응답하는 방식.
소켓 통신이란?
💡 양방향 통신
- 소켓이란 두 프로그램이 서러 데이터를 주고 받을 수 있도록 양쪽에 생성되는 통신 단자이다.
- 소켓 통신이한 서버와 클라이언트 양방향 연결이 이루어지는 통신으로 클라이언트와 서버 모두 요청을 보낼 수있는 통신이다.
클라이언트와 서버 양쪽에서 서로에게 데이터 전달을 하는 방식
HTTP 통신과 소켓 통신의 차이점
(1) HTTP 통신
- 클라이언트의 요청이 있을 때만 서버가 응답
- JSON, HTML, Image 등 다양한 데이터를 주고 받을 수 있음
- 서버가 응답한 후 연결을 바로 종료하는 단방향 통신이지만 Keep Alive 옵션을 주어 일정 시간동안 커넥션을 유지할 수 있다.
- Keep Alive의 시간을 너무 길게 설정하면 통신을 하지 않는 세션이 지나치게 많아진다. → 너무 많은 세션을 유지하는 것만으로도 시스템에 부하가 된다.
- 실시간 연결이 아닌 데이터 전달이 필요한 경우에만 요청을 보내는 상황에 유리하다.
(2) 소켓 통신
- 클라이언트와 서버가 특정 포트를 통해 양방향 통신을 하는 방식
- 데이터 전달 후 연결이 끊어지는 것이 아니라 계속해서 연결을 유지 → HTTP에 비해 더 많은 리소스 소모한다.
- 클라이언트와 서버가 실시간으로 계속하여 데이터를 주고받아야하는 경우에 유리하다
- 실시간 동영상 스트리밍이나 온라인 게임 등에 사용