웹 기술 기초
채팅 앱에서 새 메시지를 서버에서 브라우저로 즉시 전달하고 싶다. WebSocket에 대한 설명으로 올바른 것은?
- A브라우저가 몇 초마다 HTTP 요청을 보내, 새 메시지가 도착하지 않았는지 그때마다 서버에 확인하는 방식이다
- BHTTP로 시작한 연결을 전환하여(업그레이드), 하나의 연결 위에서 서버와 브라우저 어느 쪽에서든 메시지를 보낼 수 있게 한다
- C이벤트가 일어났을 때 서버에서 다른 서버의 미리 등록된 URL로 HTTP POST 요청을 보내 알리는 방식이다
정답과 해설 보기
정답: B. HTTP로 시작한 연결을 전환하여(업그레이드), 하나의 연결 위에서 서버와 브라우저 어느 쪽에서든 메시지를 보낼 수 있게 한다
WebSocket은 HTTP 요청에서 Upgrade: websocket을 요구하고, 서버가 101 Switching Protocols를 돌려주면 같은 TCP 연결을 WebSocket 통신으로 전환합니다. 그 후에는 연결을 연 채로 두어, 서버와 브라우저 어느 쪽에서든 작은 메시지를 적은 부담으로 보낼 수 있습니다. 일정한 간격으로 문의하는 방식에서는 새 메시지가 없어도 요청이 발생하고, 새 메시지가 도착하기까지 최대로 문의 간격만큼 늦어집니다. 서버에서 서버로 HTTP POST로 알리는 방식은 Webhook(웹훅)이라고 합니다.