개인공부/etc

REST API와 소켓 통신과의 차이

minseokiim 2023. 11. 16. 21:56

1. REST API는 HTTP 프로토콜을 기반으로 동작(크롬 네트워크 탭을 보면 https:)
소켓 통신은 TCP 또는 UDP 소켓을 사용하여 (크롬 네트워크 탭을 보면 socket:)

2. REST API는 일반적으로 JSON이나 XML 형식의 데이터
소켓 통신의 데이터 형식은 개발자가 정의 

3. REST API는 상태를 저장하지 않는 Stateless 통신, 클라이언트의 모든 정보가 요청에 포함되어야 함
소켓 통신은 연결을 유지하면서 상태를 계속 유지

4. REST API는 클라이언트가 요청을 보내면 서버는 해당 요청에 대한 응답을 반환하고 연결 끊김(클라이언트 서버에 요청 보낼 수 있음!!), 주로 단방향 통신
소켓 통신은 disconnect 전까지는 연결이 끊기지 않음, 클라이언트와 서버 간에 소켓을 열고 데이터를 직접 주고받을 수 있음 (disconnect 안되어있으면 부하가 감), 양방향 통신

즉, 같은 데이터를 보는데 소켓으로 통신할지, http로 통신할지의 차이


+ Q. REST API로 폴링을 하면 되는데 왜 소켓을 사용하는지?
1) 지속적인 연결이 유지되므로 실시간성 보장, 지연시간이 소요되지 않음
2) 폴링 방식은 서버에 변경사항이 없어도 일정 시간 간격으로 계속해서 요청을 보내야하는데, 소켓을 사용하면 계속 요청주지 않아도 됨

3) 소켓을 연결하면 서버도 클라이언트에 요청 할 수 있지만, 폴링만 한다면 클라이언트만 서버에게 요청 가능함

답변에 도움을 주신 서멘토님 감사합니다...!!!!!!