티스토리 뷰

자바스크립트

HTTP vs WebSockets 의 특징 및 차이점

YG - 96년생 , 강아지 있음, 개발자 희망 2023. 1. 14. 04:24

 

 

HTTP

 

 

모든 서버들이 작동하는 방식이다

 

예를 들어 유저가 request를 보내면 서버는 response를 반응하는 방식이다

 

http에서 중요한 점은 stateless라는 점이다.

 


stateless 

 

stateless라는 점은 백앤드가 유저를 기억하지 못한다는 뜻이다.

 

유저와 백앤드 사이에 아무런 연결이 없다.

 

request, response 과정 뒤에 백앤드는 유저를 잊어버린다.

 

백앤드는 response를 반응하고 그다음 request만을 기다린다.

 

 

예를 들어 서버로 메시지를 보내고 싶은데 이미 로그인이 되어 있다면 유저는 cookie만 보내면 된다.

 

아이디의 profile 페이지를 보고 싶다면 내가 누구인지 알려주는 cookie만 보내면 된다.

 

그러면 서버가 일치하는 profile로 response를 반응한다. 이렇듯 서버가 유저를 잊어버리는 것을 stateless라고 한다.

 


서버는 오직 request를 받을 때만 response를 답장해 준다.

 

그래서 유저와 서버는 request, response를 반복하게 된다.

 

여기서 중요한 점은 real-time으로 이루어지지 않는다는 점인데  첫째로 유저가 request를 보내야 하고 둘째로는 서버가 유저에게 아무것도 해주지 못하기 때문이다 ( 서버가 먼저 유저에게 말을 거는 경우는 없음 )

 

이것이 http의 프로토콜(규칙)이다.

 


 

WebSocket

 

 

WebSocket 연결이 일어날 때는 마치 악수처럼 작동한다.

 

브라우저가 서버로 WebSocket request를 보내면 서버가 받거나 거절하거나를 함

 

이런 악수가 한번 성립되면(서버가 승낙한다면), 연결은 성립된다.

 

연결은 브라우저와 서버가 손을 맞잡고 있는 것처럼 브라우저랑 서버가 서로 커뮤니케이션하는 것을 뜻한다.

 

연결되어 있기 때문에 서버는 유저가 누구인지 기억할 수 있다. 또한 원한다면 서버가 유저에게 메시지를 보낼 수 있다.

 

서버는 request를 기다리지 않아도 된다. request, response 과정이 필요 없어지는 것이다.

 

양방향의 연결임. 

 

이 모든 것은 연결 중에만 가능함

 

브라우저와 서버 사이에 양방향 한 연결이 있어서 서로에게 바로 갈 수 있는 길이 있음.

 

Wifi 연결과 비슷한 성격임

 

한번 연결되면 계속 연결되어 있듯이 WebSocket도 연결을 끊기 전까지 계속 연결되어 있음.

 

WebSocket 또한 프로토콜이다.

 

WebSocket은 자바스크립트 전용이 아니고 구현되어 있는 것이 있어서 자바스크립트에서도 사용할 수 있다.

 

브라우저에는 내장된 WebSocket API가 있다.

 

만약 GO 언어로 된 백앤드가 있으면 여기서도 WebSocket을 사용할 수 있다.

 

브라우저도 마찬가지로 브라우저에서만 이루어지는 것이 아닌 백앤드와 백앤드끼리 WebSocket이 이루어질 수 있다.

 

 

 

 

HTTP와 WebSocket의 가장 큰 차이점

  • 양방향 통신이 가능하다. 서버에서 유저에게 메시지를 보낼 수 있다.
  • 실시간 통신이 가능하다. (real-time) : 연결이 이루어져 있는 동안 request, response 과정의 통신이 아닌 양방향의 실시간 데이터 통신이 가능해진다.

 

 

 

 

 

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함