🧐 WEB-SOCKET 연결 과정에 대해 설명해주세요!
KEY WORD
: HTTP 1.1에서만 업그레이드 가능
, STATE-LESS 에서 STATE-FULL 로
, HEART-BEAT로 연결 지속!
🙋🏻♂️ 면접 1분 대답 !
WebSocket은 Http1.1에서만 업그레이드가 가능한 프로토콜로, 기존의 state-less한 http 요청 응답 패턴에서, heart-beat를 활용한 state-full 한 상태로 서버-클라이언트 연결을 변환합니다. 크게 다음의 3가지 과정으로 Web-Socket 연결이 이루어 집니다.
- 클라이언트가 Header에 Upgrade: Websocket Attribute를 담아 연결을 요청합니다.
- 서버가 Header에
Http/1.1 101 Switching Protocol
을 보내, 이제 연결을 state-full한 상태로 지속할 것임을 클라이언트에게 알립니다. - 방화벽이나 기타 보안에 의해 연결이 기별없이 끊길 수 있으므로, 서로 heart-beat를 보내며 연결이 살아 있는지 확인합니다.
📝 자세한 설명 (추가 질문 대처하기!) 📝
추가 설명!
위와 같이 클라이언트에서는 STOMP.connect(wss://서버 URL)
을 할 것인데요. (편의상 Client에서는 STOMP protocol을 쓰고 있다고 가정하겠습니다.) 하지만 해당 요청은 사실 HTTP GET
요청으로 보내지고, 다만 Header에 Upgrade라는 Attribute가 추가될 뿐입니다!
이상입니다!
저희 레포지토리에 ⭐를 넣어두시거나 WATCH
설정을 해두시면, 매일 새로운 CS 면접 대비 질문과 대답으로 찾아뵙겠습니다^^
0