[네트워크] 웹 소켓 연결이 이뤄지는 방식
해당 문서 아카이빙:
https://medium.com/@icehongssii/%EA%B9%9C%EC%B0%8D%ED%95%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EB%93%A4%EC%9D%84-%EC%9C%84%ED%95%9C-%EA%B0%84%EB%8B%A8%ED%95%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%83%81%EC%8B%9D-2-2-http%EB%A5%BC-%EB%84%98%EC%96%B4%EC%84%9C-%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%82%B9websocket-c49125e1b5a0

웹 소켓 연결이 이뤄지는 방식

웹 소켓은 HTTP 기반의 HTTP의 문제점을 해결하는 것을 목표로 나온 기술이다. 이전의 통신과 달리 이중통신(full-duplex 통신) 즉 수신과 송신을 동시에 처리할 수 있다.

기존의 TCP socket과 다른 점은 웹 소켓은 최초 접속이 일반 http 요청을 이용한 handshaking으로 이루어진다는 점이다. 또 TCP socket에서는 바이트 스트림을 사용하지만 웹 소켓을 통해 전달되는 텍스트들은 UTF-8 포맷을 가진다.

작동원리

서버와 클라이언트간의 웹 소켓 연결은 HTTP 프로토콜을 통해 이루어진다. HANDSHAKE과정이 성공적으로 끝나면 HTTP를 웹소켓 프로토콜로 바꾸는 protocol switching 과정이 진행된다. 이후 웹소켓을 위한 새로운 소켓이 만들어지고 이 소켓을 이용해 통신한다.

웹소켓 주소는 ws나 wss로 시작하는데 ws는 일반 웹소켓이고 wss는 SSL이적용된 웹소켓이다(Https)

참조:
WebSocket을 이용하여 클라이언트 애플리케이션 작성하기 - 웹 소켓 | MDN
https://developer.mozilla.org/ko/docs/WebSockets/Writing_WebSocket_client_applications

websocket
https://www.joinc.co.kr/w/man/12/websocket#fid_2

시나몬 브레드 | webSocket 으로 개발하기 전에 알고 있어야 할 것들
https://adrenal.tistory.com/20