쿠쿠더님의 블로그

웹 소켓이란? 본문

NODEJS

웹 소켓이란?

쿠쿠더 2025. 4. 21. 16:56
  • 웹 소켓이란 ?

소켓이란 ? 

 

- 소켓은 인터넷 즉 네트워크에서 통신하는 역활을 도와주는 개념

- 데이터를 받는 역할 

- ip주소, 포트번호로 연결을 시도한다. 데이터를 받을수 있다.

- 소켓은 컴퓨터에서 데이터를 주고 받을때 연결 속성을 가지고 있다.

- ip주소와 포트번호를 가지고 데이터를 받을수 있다.

 

http vs websocket의 차이

 

1. http : 요청후 응답 받고 안전하게 종료. ( http://, https://)

2. websocket(ws) : 요청을 한쪽에서만 지향하는게 아닌 양방향 통신을 지향한다. 논리적 연결을 유지해서 

실시간으로 데이터를 주고받을수 있다.

 

구조

- http요청을 보내고 웹소켓 핸드 셰이크를 진행한다.

 

웹소켓 업그레이드 요청

GET / HTTP /1.1 
host : localhost
Connection : upgrade // 웹소켓 프로토콜 업그레이드
Sec-WebSocket-key : 클라이언트 값 // 클라이언트와 서버의 값을 확인하기위한 값 검증을 위한 해시 문자열이 포함된다. 클라이언트와 서버의 값 확인 검증값
upgrade : websocket

 

웹소켓 업그레이드 응답 

HTTP/1.1 101 Switching protocols
Connection : Upgrade
Upgrade : websocket 
Sec-WebSocket-key : 클라이언트 + 서버의 값 


 Sec-WebSOcket-key 값을 검증하기위한 해더의 값
- Sec-WebSocket-key 클라이언트에서 요청을 보낼때 16바이트의 base64 문자열을 포함시켜서 보내준다. 
임의로 만든 문자열
- 서버에서는 특정한 값을 이 문자열에 포함시켜서 응답을 해준다. 
- sha-1 암호화 문자열을 생성해서 클라이언트에게 응답
- 클라이언트가 이값을 확인하고 웹소켓의 연결을 신뢰할수 있는지 검증하기 위한 값.

 

그리고 소켓은 라이브러리를 가져올떄 

npm i ws라고 한다 ★ ★ ★ ★ 

 

제가 생각하기에는 웹소켓으로는 실시간채팅기능 등등 실시간으로 할수있는것 대화할수있는 대화방 같은것을

가능하게 할수있다. 그래서 알아두면 유익할꺼같습니다.

'NODEJS' 카테고리의 다른 글

webRTC란?  (0) 2025.04.21
OAuth 2.0 카카오 로그인  (0) 2025.04.21
Frountend와 Backend  (0) 2025.03.10
CORS란  (0) 2025.03.10
AJAX, Fetch, Axios  (0) 2025.03.10