웹 기술 기초

채팅 앱에서 새 메시지를 서버에서 브라우저로 즉시 전달하고 싶다. 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(웹훅)이라고 합니다.

이 분야 연습하기 분야로 돌아가기

웹 기술 기초의 다른 문제

  1. 온라인 결제 서비스에서 결제가 완료된 것을 가맹점 서버가 즉시 알고 싶어 한다. 결제 서비스가 미리 등록된 가맹점의 URL로 HTTP POST로 통지를 보내는 방식(Webhook)에 대한 설명으로 올바른 것은?
  2. 브라우저에서 사용되는 DOM(Document Object Model)에 대한 설명으로 올바른 것은?
  3. 위의 CSS를 지정한 요소에서, 좌우 보더의 바깥쪽 끝에서 끝까지의 폭은?
  4. 다른 스타일 지정은 없는 것으로 한다. 위의 HTML에서 'Hello'라는 문자의 색은?
  5. 브라우저가 첫 화면을 표시하기까지의 처리(중요 렌더링 경로)에서는 <head> 안에 속성 없이 쓴 <script src="app.js">가 있으면 HTML 파싱이 거기서 멈춘다. 이 요소에 defer 속성을 붙였을 때의 동작으로 올바른 것은?