웹소켓(WebSocket)란?

브라우저와 서버 사이에서 하나의 연결을 연 채로, 어느 쪽에서든 언제든지 메시지를 보낼 수 있게 하는 통신 방식. HTTP 요청으로 Upgrade: websocket을 요구하고, 서버가 101 Switching Protocols를 돌려주면 같은 TCP 연결을 WebSocket 통신으로 전환한다. URL 스킴에는 ws와, TLS로 보호한 wss를 사용한다. 채팅이나 공동 편집, 시세 표시처럼 서버에서 새로운 정보를 즉시 전달하고 싶은 용도에서, 일정한 간격으로 문의하는 방식보다 통신량과 지연을 줄일 수 있다.

일본어 명칭: WebSocket

웹소켓(WebSocket)은(는) 웹 기술 기초 등 1개 분야의 연습 문제 1개에 나와요.

분야: 웹 기술 기초

도전해 보기: 웹소켓(WebSocket) 관련 문제

채팅 앱에서 새 메시지를 서버에서 브라우저로 즉시 전달하고 싶다. WebSocket에 대한 설명으로 올바른 것은?

  1. A브라우저가 몇 초마다 HTTP 요청을 보내, 새 메시지가 도착하지 않았는지 그때마다 서버에 확인하는 방식이다
  2. BHTTP로 시작한 연결을 전환하여(업그레이드), 하나의 연결 위에서 서버와 브라우저 어느 쪽에서든 메시지를 보낼 수 있게 한다
  3. C이벤트가 일어났을 때 서버에서 다른 서버의 미리 등록된 URL로 HTTP POST 요청을 보내 알리는 방식이다
정답과 해설 보기

정답: B. HTTP로 시작한 연결을 전환하여(업그레이드), 하나의 연결 위에서 서버와 브라우저 어느 쪽에서든 메시지를 보낼 수 있게 한다

WebSocket은 HTTP 요청에서 Upgrade: websocket을 요구하고, 서버가 101 Switching Protocols를 돌려주면 같은 TCP 연결을 WebSocket 통신으로 전환합니다. 그 후에는 연결을 연 채로 두어, 서버와 브라우저 어느 쪽에서든 작은 메시지를 적은 부담으로 보낼 수 있습니다. 일정한 간격으로 문의하는 방식에서는 새 메시지가 없어도 요청이 발생하고, 새 메시지가 도착하기까지 최대로 문의 간격만큼 늦어집니다. 서버에서 서버로 HTTP POST로 알리는 방식은 Webhook(웹훅)이라고 합니다.

해설 속 웹소켓(WebSocket)

웹소켓(WebSocket)이(가) 나오는 문제 (1)

  1. 채팅 앱에서 새 메시지를 서버에서 브라우저로 즉시 전달하고 싶다. WebSocket에 대한 설명으로 올바른 것은?

관련 용어

HTTP(하이퍼텍스트 전송 프로토콜) 동일 출처 정책(Same-origin Policy) 리버스 프록시(Reverse Proxy) 서버 사이드 렌더링(SSR) 이벤트 루프(Event Loop) 쿠키(Cookie) CORS(교차 출처 리소스 공유) DOM(문서 객체 모델) HTTP 메서드(HTTP Method) HTTP 상태 코드(HTTP Status Code)

용어집으로 돌아가기