코딩 화이팅 2023. 12. 19. 22:20
  • 웹에서 양방향 통신을 가능하게 하는 고급 기술
  • 전통적인 HTTP 통신과 달리, WebSocket은 클라이언트와 서버 간에 지속적인 연결을 유지하며, 양쪽 모두에서 언제든지 데이터를 주고받을 수 있게 해줌

주요 특징

  • 양방향 통신
    • 클라이언트와 서버 간의 양방향 통신을 가능하게 함.
  • 지속적인 연결
    • 한 번 연결이 되면, 클라이언트와 서버 사이의 연결이 지속적으로 유지
    • 추가적인 HTTP 요청 없이 데이터를 빠르게 주고 받을 수 있게 해줌
  • 실시간 통신
    • 실시간으로 데이터를 교환해야 하는 애플리케이션에 이상적
    • 온라인 게임, 채팅, 실시간 거래 플랫폼 등

서버와 클라이언트가 어떻게 연결을 유지하면서 데이터를 주고 받는거지?

  1. 연결 수립
    • 클라이언트는 서버에 웹소캣 연결을 요청하는 특별한 형태의 HTTP 요청을 보냄.
    • 'Upgrade: websocket'과 같은 헤더가 포함되어, 서버에게 연결을 웹소켓 프로토콜로 전환하자는 의미를 전달
    • 서버가 이 요청을 수락하면, HTTP 연결은 웹소켓 연결로 업그레이드되며, 이로써 지속적인 연결이 수립됨.
  2. 데이터 전송
    • 연결이 수립되면, 클라이언트와 서버는 연결이 종료될 때까지 언제든지 데이터를 서로에게 전송 가능
    • 프레임 기반의 통신을 사용하여 데이터를 주고받음.