WebSocket이란? [Network]

SnowCat·2023년 10월 4일
0

CS - Network

목록 보기
11/11

WebSocket이란?

  • WebSocket은 HTML5의 표준 기술로 양방향 통신을 지원하는 통신 프로토콜이다.
  • 클라이언트와 서버가 한번 연결이 이루어지면, 그 연결을 유지하면서 데이터를 주고받을 수 있다.
  • 기존 HTTP를 사용한 통신에 비해 실시간 애플리케이션 동작에 있어서 큰 강점을 가질 수 있다.

연결 방식

  • Handshake 과정에서는 HTTP 프로토콜과 동일한 방식을 사용한다.
  • 하지만 연결이 확립된 다음에는 WebSocket의 독자적인 프로토콜을 사용해 연결을 유지한다.
  • 데이터의 송신과 수신에 커넥션을 맺을 필요가 없이 하나의 커넥션만으로 데이터를 송수신 할 수 있다.
  • 사용 방법은 Ajax와도 비슷하지만, Ajax와 다르게 서버도 클라이언트를 인지하고 있기 때문에 양방향 동작이 가능하다.

WebSocket 사용의 장점

  • HTTP 통신과는 다르게 서버가 클라이언트에게 데이터를 보내 양방향 통신이 가능하다.
  • HTTP 요청과 다르게 최초 연결 이후에는 최소한의 헤더 정보만을 사용해 데이터 오버헤드를 줄일 수 있다.
  • 웹소켓은 연결이 종료될 때 까지 연결이 지속되기 때문에 연결 설정에 따른 레이턴시를 줄일 수 있다.

WebSocket 사용시 주의해야 할 점

  • HTTP 통신과 다르게 Stateful하다는 특징이 있기 떄문에, 비정상적인 연결 중단에 대한 대책을 세워야 한다.
  • 서버와 클라이언트가 항상 연결되어 있기 때문에 Socket 연결 유지에 비용이 든다는 점을 고려해야 한다.
  • 서버와 클라이언트 연결이 끊어졌을 때 생성되는 메시지가 구체적이지 않다.
profile
냐아아아아아아아아앙

0개의 댓글