javascript - 웹 소켓

김형석·2022년 8월 17일
0

개념공부 스터디

목록 보기
27/27

1.HTTP

인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다. 프로토콜은 규칙이라고 생각하시면 됩니다. 이렇게 규칙을 정해두었기 때문에, 모든 프로그램이 이 규칙에 맞춰 개발해서 서로 정보를 교환할 수 있게 된 것이죠.

1. 통신과 HTTP

HTTP는 HyperText Transfer Protocol의 약자입니다. 하나하나 용어에 대한 뜻을 먼저 살펴봅시다.
How do we communicate?

Hyper Text

HTML(HyperText Markup Language)
문서와 문서가 링크로 연결되어 있음을 뜻함

Transfer

HTML로 만든 웹페이지 문서(파일)을 보낸다

Protocol

컴퓨터가 어떻게 HTML 파일을 주고 받을지에 대한 소통 방식 또는 약속

2. HTTP의 두가지 특징

Request / Response (요청 / 응답)
소통의 핵심은 요청과 응답입니다. 인간의 소통방식이 컴퓨터끼리의 소통 방식에도 적용된 것. 말이 아닌 메시지의 형식으로 요청하고 응답함.

서버가 브라우저의 요청에 응답하고 나면 브라우저 - 서버간 통신은 끝나게 됨
즉, 한번 응답이 끝나고 나면 브라우저에 더이상 무엇도 보낼 수 없다는 뜻
서버가 브라우저에게 데이터를 보낼 수 있는건 브라우저가 요청을 했을 때 뿐!!
서버가 그냥 브라우저에게 뭘 보낼 수가 없음

웹 소켓

만약 오직 http를 이용하여 채팅을 만든다면 새로운 메시지가 왔는지 보려면 2초마다 새로고침을 요청해야함
그래서 웹 소켓이 생김

Request / Response가 있는 것이 아니라, 커넥션이 Open - Close된 여부이다.

브라우저가 웹 소켓을 이용해 서버에 연결을 하면 브라우저 - 서버간 통신은 열려있을 것이고(Open) 해당 통신은 원하는 순간까지 계속 열려있을 것이다.

통신이 열려있는 동안 자유롭게 브라우저 - 서버 둘다 메시지를 보내고 받을 수 있다.

채팅방, 주식거래앱, 게임

채팅방에 들어가면 서로 연결된 것이 아니라 아래의 사진과 같이 웹소켓 서버에 입장한 것이다.

서버에 메시지를 보내면 서버는 해당 메시즈를 채팅방 사람들에게 보내는 것!

HTTP vs. 웹소켓

일종의 전화 통화(양방향) 같은 것, http 통신은 벽이랑 탁구를 치는 셈이다...!

단점

웹 소켓에서는 서버의 '메모리 파워'가 중요하다.(모든 통신을 추적하기 위해서)

따라서 유저가 많으면 많을수록 더 많은 메모리가 필요하고 이는 서버에 더 돈을 써야함을 의미한다.

리얼타임을 위해 빠르기도 중요하다.

하지만 서버에 이미 수많은 커넥션이 오고 있다면, 딜레이가 발생할 수 있고 그럼 유저 경험이 내려갈 수 밖에 없다.

그래서 브라우저 - 서버간의 연결이 아닌 브라우저 - 브라우저 연결을 할 수 있는 WebRTC를 사용한다고 한다.!

WebRTC

profile
블로그 이사 : https://hengxi.tistory.com

0개의 댓글