대기 시간이 짧은 애플리케이션은 일반적으로 HTTP가 제공할 수 있는 것보다 더 빠른 통신 수단을 필요로 합니다. 이러한 예로는 올바른 사용자 경험을 제공하기 위해 실시간 대화형 커뮤니케이션이 필요한 멀티플레이어 온라인 게임 또는 채팅 애플리케이션이 있습니다. WebSockets는 클라이언트와 서버 간의 개방적이고 지속적인 양방향 연결을 가능하게 하는 실시간 통신 프로토콜입니다. 이렇게 하면 클라이언트가 요청하지 않아도 클라이언트(예: 브라우저)로 데이터를 전송할 수 있습니다. HTTP 프로토콜을 사용하면 클라이언트가 요청을 보내는 경우에만 서버가 응답합니다.
금융기관은 웹소켓의 또 다른 사용 사례이다. 최근에 우리는 WebSocket 프로토콜을 사용하여 북미 주요 은행과 협력하여 오리진 서버에 대한 개방형 연결을 설정하여 클라이언트 폴링 없이 거래가 진행될 때마다 실시간 알림을 보냅니다.
WebSocket 프로토콜은 어떻게 작동합니까?
WebSocket 연결은 일반 HTTP 연결로 시작됩니다. WebSocket 연결을 설정하기 위해 클라이언트와 서버는 초기 핸드셰이크(이 프로토콜 스위치를 WebSocket 핸드셰이크라고 함) 동안 HTTP 프로토콜에서 WebSocket 프로토콜로 업그레이드합니다. 이 업그레이드를 시작하기 위해 클라이언트는 다음 헤더를 사용하여 서버에 요청을 보냅니다.
-
연결: 업그레이드 – 클라이언트가 프로토콜을 변경하려고 함을 나타냅니다.
-
업그레이드: WebSocket – 요청된 프로토콜이 “WebSocket”임을 나타냅니다.
서버가 WebSocket 프로토콜을 이해하고 스위치에 동의하면 동일한 두 헤더가 있는 101(스위칭 프로토콜)이라는 특수 응답 코드를 다시 보냅니다. 이 시점에서 HTTP 연결은 동일한 기본 TCP/IP 연결을 통한 WebSocket 연결로 대체됩니다. 일단 설정되면, WebSocket 데이터 프레임은 한쪽이 연결을 닫을 때까지 전이중 모드로 클라이언트와 서버 간에 주고받을 수 있습니다.
HTTP를 통한 WebSocket의 주요 이점은 다음과 같습니다.
-
영구 연결: 클라이언트가 새 데이터를 확인하기 위해 연결을 자주 다시 시작할 필요가 없습니다.
-
낮은 지연 시간: 웹소켓은 최소한의 오버헤드를 사용합니다. 연속적인 연결이 있기 때문에 헤더 및 기타 정보와 같은 HTTP 요청과 관련된 일반 오버헤드를 더 이상 보낼 필요가 없으므로 대기 시간이 줄어듭니다.
-
전이중 통신: 웹소켓은 서버와 클라이언트 사이의 양방향 통신을 제공하므로 양측이 동시에 통신하고 데이터를 교환할 수 있습니다. 현재 Edgio인 EdgeCast는 전 세계 전송 네트워크에서 WebSocket 프로토콜을 지원하게 된 것을 기쁘게 생각합니다. IoT 및 에지 컴퓨팅 시대로 이동함에 따라 WebSocket 프로토콜은 에지에서 지연 시간이 짧은 애플리케이션을 제공하려는 기업에게 도움이 될 것입니다.