[테크 톡 - 18주차] 웹 소켓

728x90

📌 웹 소켓의 등장 배경

- HTTP를 통해 서버로 데이터를 가져오기 위해서는 URL을 통한 요청만이 유일했기 때문에 아이디 중복 확인 등과 같은 유효성 검사는 새로운 페이지 요청을 해야만 했음.

- 이후 Ajax가 등장하였으나, 자원의 낭비가 심했음.
  → 페이지 요청이 아닌 데이터 요청으로 부분적인 정보 갱신 가능
  → 매번 이벤트를 발생시키거나 일정 주기로 요청을 보내기 때문에 자원의 낭비가 심함.

- 위 두가지 방식 모두 클라이언트의 요청이 없다면 서버로부터 응답을 받을 수 없는 단방향 통신임.

 

📌 웹 소켓이란?

- 효율적인 양방향 통신을 실행하기 위한 HTTP와 같은 .

- 서버와 브라우저 사이에 양방향 소통이 가능함
   새로고침하거나 다른 웹 사이트로 이동하지 않아도 최신 데이터가 적용된 웹을 볼 수 있음.

- 웹 환경에서 연속된 데이터를 빠르게 노출 시킬 수 있기 때문에 채팅, 게임 주식차트, Google Docs, SNS 등과 같은 곳에 사용됨.

- 클라이언트가 접속 요청을 하고 웹 서버가 응답한 후 연결을 끊는 것이 아니라 Connection을 그대로 유지하고 클라이언트의 요청 없이도 데이터를 전송 할 수 있는 프로토콜이다.

- 양방향 통신을 지원하기 때문에 요청과 응답을 구분하지 않는다. 

 

📌 웹 소켓의 작동원리 

 

이미지 출처 : https://kellis.tistory.com/65

- 크게 Opning HandShake, Data Transfer, Closing Handshake 세가지 영역으로 나뉨
  1) Opning HandShake : HandShake 요청 및 응답을 받음. 
  2) Data Transfer : HandShake 를 통해 웹 소켓 연결이 되면 데이터 전송파트가 시작됨.
                               클라이언트와 서버가 메세지 개념으로 데이터를 주고받는데 메세지는 1개 이상의 프레임으로 구성되어 있음.
                               서버와 클라이언트가 HandShake 가 끝난 시점부터 서로 살아있는지 확인하기위해 heartbeat 패킷을 보내며 주기적으로 체크 (서버, 클라이언트 양측에서 설정 가능)

3) Close Handshake : 연결을 종료한다는 프레임을 보내고 클라이언트가 이에 대한 응답으로 Close 프레임을 전송하면 웹 소켓 연결이 종료되며 연결이후 수신되는 데이터는 모두 버려진다. 

- 연결은 HTTP 프로토콜을 통해 이루어진다.

- 웹 소켓의 접속 과정은 TCP/IP 접속과 웹 소켓 열기 HandShake 과정으로 나누어진다.
  TCP/IP 위에서 동작을 하기 때문에 웹 소켓 사용 전 서로 TCP/IP 접속이 되어 있어야 한다.
  참고 : 2023.10.10 - [스터디/테크톡] - [테크 톡 - 16주차] TCP/IP

 

[테크 톡 - 16주차] TCP/IP

📌 TCP/IP란? - 컴퓨터가 서로 통신하는 경우, 특정 규칙이나 프로토콜을 사용하여 순서대로 데이터를 전송 및 수신할 수 있다. TCP/IP는 하나의 프로토콜이 아니라, TCP와 IP를 합쳐서 부르는 말이다

sm-lee2026210.tistory.com

- TCP / IP 접속 완료 후 서버와 클라이언트은 웹 소켓을 열기 위해 HandShake과정을 시작한다.

- HandShake 과정 : 클라이언트가 먼저 HandShake 요청을 보내고 이에 대한 응답을 서버가 클라이언트로 보내는 구조

- HandShake  가 완료되면 ws로 프로토콜을 변환하여 웹 소켓 프레임을 통해 데이터를 전송 함.

 

💌 Reference

- https://choseongho93.tistory.com/266

 

[웹소켓] WebSocket의 개념 및 사용이유, 작동원리, 문제점

오늘은 웹소켓에 대해 알아보겠습니다. ● 웹소켓(WebSocket)의 배경 : 인터넷이 나오고 HTTP를 통해서 서버로부터 데이터를 가져오기 위해서는 오로지 URL을 통한 요청이 유일한 방법이었습니다. 때

choseongho93.tistory.com

- https://velog.io/@codingbotpark/Web-Socket-%EC%9D%B4%EB%9E%80

 

Web Socket 이란?

유튜브 [10분 테코톡] 🧲코일의 Web Socket을 정리한 웹소켓 과 웹소켓의 특징, 동작방법, 특이점 을 포함한 내용입니다

velog.io

- https://yuricoding.tistory.com/134

 

웹소켓 개념과 원리

개념정리 웹소켓 개념과 원리 웹소켓(WebSocket)의 개념 웹소켓이란? 웹소켓(WebSocket) 기존의 단방향 HTTP 프로토콜과 호환되어 양방향 통신을 제공하기 위해 개발된 프로토콜 일반 Socket통신과 달리

yuricoding.tistory.com

 

- https://kellis.tistory.com/65

 

WebSocket의 동작원리

웹소켓은 HTTP로 Handshake를 한 후 ws로 프로토콜을 변환하여 웹소켓 프레임을 통해 데이터를 전송합니다. 웹소켓은 양방향 통신(full-duplex)을 지원하며, 그래서 요청과 응답을 구분하지 않습니다.

kellis.tistory.com

 

728x90

'스터디 > 테크톡' 카테고리의 다른 글

[테크 톡 - 20주차] Radis란?  (1) 2023.11.28
[테크 톡 - 19주차] Array와 Array List  (0) 2023.11.07
[테크 톡 - 17주차] OSI 7계층  (0) 2023.10.21
[테크 톡 - 16주차] TCP/IP  (1) 2023.10.10
[테크 톡 - 15주차] Enum  (0) 2023.09.13