줌 클론코딩 강의 듣다가, 이전에 REST API 정리할 때 봤던 기억이 나서 정리해버리기
WebSocket
객체는 WebSocket 서버 연결의 생성과 관리 및 연결을 통한 송수신 API를 제공한다.
둘 다 모두 인터넷을 통한 통신 프로토콜이지만, 차이가 있다.
HTTP
는 클라이언트와 서버 간의 요청과 응답을 주고받기 위한 프로토콜이다.
클라이언트가 서버에게 요청을 보내면 서버는 그에 대한 응답을 보내는 방식으로 통신한다.
이러한 통신 방식을 "요청-응답(request-response)"방식이라고 한다.
이러한 방식이기 때문에, 클라이언트가 서버로부터 응답을 받은 후에는 연결을 끊어야 한다.
이는 매번 요청할 때마다 새로운 연결을 맺는 방식으로, 실시간으로 데이터를 주고받는 것에는 적합하지 않다.
사진출처 - HTTP 개요 - HTTP | MDN
WebSocket API
는 실시간으로 양방향 통신을 가능하게 하는 프로토콜이다.
클라이언트와 서버 간의 연결을 유지하고 있으며, 양쪽 모두가 언제든지 데이터를 보내고 받을 수 있다.
이러한 특성으로 인해 WebSocket API
는 실시간 채팅, 온라인 게임 등과 같은 애플리케이션에서 많이 사용 된다.
가장 큰 차이는 연결 유지 방식이다.
HTTP
는 매번 요청-응답 방식으로 연결을 맺고 끊는 것이 일반적이지만, WebSocket API
는 한 번 연결을 맺으면 지속적으로 연결을 유지하며 데이터를 주고받는다.
이는 HTTP
보다 더 많은 데이터를 실시간으로 전송할 수 있으며, 서버와 클라이언트 모두가 상시 연결을 유지해야 하는 실시간 애플리케이션에 적합하다.