[java] 자바 웹소켓과 HTTP의 차이점
웹 소켓(WebSocket)과 HTTP(HyperText Transfer Protocol)는 모두 웹 애플리케이션에서 사용되는 통신 프로토콜입니다. 그러나 두 프로토콜은 몇 가지 중요한 차이점이 있습니다.
HTTP
HTTP는 클라이언트와 서버 간에 텍스트를 주고받는 프로토콜로, 클라이언트가 서버에 요청을 보내고 서버가 해당 요청에 대한 응답을 제공합니다. 이 프로토콜은 요청/응답 모델을 기반으로 하며, 기본적으로 클라이언트가 서버에게 요청을 보내야만 서버가 응답을 전송합니다.
웹 소켓
반면 웹 소켓은 전이중(duplex) 통신을 제공하는 프로토콜로, 클라이언트와 서버 간에 양방향 통신이 가능합니다. 이를 통해 실시간으로 데이터를 주고받을 수 있으며, 웹 소켓 연결이 한 번 이루어지면 계속 유지될 수 있습니다.
차이점
- 통신 방식: HTTP는 단방향 요청/응답 방식을 사용하는 반면, 웹 소켓은 양방향 통신을 지원합니다.
- 연결 유지: HTTP는 요청/응답이 완료되면 연결이 끊어지지만, 웹 솼킷은 연결을 유지합니다.
- 데이터 전송 오버헤드: HTTP는 헤더 오버헤드가 있지만, 웹 솼킷은 이에 비해 낮은 수준의 오버헤드를 가집니다.
이러한 차이로 인해, 실시간 양방향 통신이 필요한 애플리케이션의 경우 웹 소켓을 사용하는 것이 더 효율적일 수 있습니다.
참고 문헌:
- Mozilla Developer Network. “WebSocket” https://developer.mozilla.org/en-US/docs/Web/API/WebSocket