<aside>
💡 정리
- HTTP 통신은 소켓 통신을 기반으로 하며, 상위 계층의 애플리케이션 프로토콜로 볼 수 있습니다.
- 개발자는 HTTP 프로토콜을 사용하여 웹 애플리케이션을 구현할 수 있지만, 그 밑단에서는 소켓 통신이 이루어지고 있습니다.
</aside>
소켓이란? 종류, 통신 흐름, HTTP통신과의 차이

Socket이란?
네트워크를 경유하는 프로세스 간 통신의 종착점. OSI 7계층 중 응용 계층에 속하는 프로세스들은 데이터 송수신을 위해 반드시 소켓을 거쳐 전송 계층으로 데이터를 전달해야한다. 즉, 소켓은 전송 계층과 응용 프로그램 사이의 인터페이스 역할을 하며 떨어져 있는 두 호스트를 연결해준다.
HTTP 통신과 소켓 통신의 차이
(1) HTTP 통신
- 클라이언트의 요청이 있을 때만 서버가 응답
- JSON, HTML, Image 등 다양한 데이터를 주고 받을 수 있음
- 서버가 응답한 후 연결을 바로 종료하는 단방향 통신이지만 Keep Alive 옵션을 주어 일정 시간동안 커넥션을 유지할 수 있다.
- 실시간 연결이 아닌 데이터 전달이 필요한 경우에만 요청을 보내는 상황에 유리
(2) 소켓 통신
- 클라이언트와 서버가 특정 포트를 통해 양방향 통신을 하는 방식
- 데이터 전달 후 연결이 끊어지는 것이 아니라 계속해서 연결을 유지 → HTTP에 비해 더 많은 리소스 소모
- 클라이언트와 서버가 실시간으로 계속하여 데이터를 주고받아야하는 경우에 유리
- 실시간 동영상 스트리밍이나 온라인 게임 등에 사용