WebSocket(1)

BOONG GI JUNG·2023년 12월 13일

IT

목록 보기
4/9

웹소켓의 작동 방식과 특징

핸드셰이크(Handshake)
클라이언트가 서버에게 웹소켓 연결을 요청할 때, 먼저 핸드셰이크 과정이 이루어집니다. 이 과정에서 클라이언트와 서버는 Upgrade 헤더를 사용하여 HTTP에서 웹소켓으로 프로토콜을 변경합니다.

양방향 통신
핸드셰이크 이후에는 TCP 소켓 연결이 성립되고, 이제 양방향 통신이 가능해집니다. 클라이언트나 서버는 언제든지 상대방에게 메시지를 보낼 수 있고, 상대방은 그 메시지에 대한 즉각적인 응답을 보낼 수 있습니다.

프레임(Frame)
웹소켓은 메시지를 프레임으로 나누어 전송합니다. 프레임은 텍스트, 바이너리, 특정한 제어 명령 등 다양한 형식으로 전송될 수 있습니다.

서브프로토콜(Subprotocol)
클라이언트와 서버는 핸드셰이크 과정에서 서브프로토콜을 협상할 수 있습니다. 서브프로토콜은 클라이언트와 서버 간의 통신 규약을 정의하며, 예를 들어 채팅 애플리케이션에서는 JSON 기반의 서브프로토콜을 사용할 수 있습니다.

Keep-Alive
웹소켓은 지속적으로 연결을 유지하므로 Keep-Alive의 필요성이 감소합니다. 이는 HTTP와 달리 계속해서 새로운 연결을 맺지 않고 기존의 연결을 재사용하여 효율적인 통신을 가능케 합니다.

보안
웹소켓은 보안을 위해 TLS(Transport Layer Security)을 지원합니다. 이는 암호화된 연결을 통해 데이터를 안전하게 전송할 수 있도록 합니다.

결론

웹소켓은 주로 실시간 통신이 필요한 웹 애플리케이션에서 사용되며, 예를 들어 온라인 게임, 주식 시장 데이터 갱신, 실시간 채팅 등의 다양한 응용 분야에서 활용됩니다. 클라이언트와 서버 간의 실시간 양방향 통신이 필요한 경우에 웹소켓은 매우 유용한 기술이 될 수 있습니다. 이번주 동안 웹소켓을 깊게 알아봅시다.

profile
새로운 기술을 즐기는 라이프 하루에 한번 포스팅하기!

0개의 댓글