본문 바로가기
CS/Network

[네트워크] 웹 소켓(Web Socket)

by 테리는당근을좋아해 2020. 6. 27.

정적 웹 페이지와 동적 웹 페이지

1) 정적 웹 페이지

- 미리 저장된 파일이 그대로 전달

 

2) 동적 웹 페이지

- 사용자의 요청을 해석해 동적으로 생성된 파일을 전달

 

3) 문제점

- 완전한 HTML 문서를 받아서 전달

- 일부 정보만 변경되었더라도, 완전히 새로운 페이지를 가져와야함

 

4) 실시간 웹

- 페이지의 현재 상태를 방해하지않고 서버와 통신하므로써, 기존의 정적 웹 페이지와 동적 웹 페이지의 문제점을 해결

 

 

웹 소켓(Web Socket)

1) Socket

- 원격 호스트 간 IPC(Inter Process Communication)을 위한 통신 스트림

 

2) 웹 소켓

- 양방향 통신 프로토콜로서 클라이언트와 서버는 TCP로 통신

- 실시간 전송 가능

- 웹 페이지의 한계에서 벗어나 실시간으로 상호작용하는 웹 서비스를 만드는 표준 기술

 

(1) 특징

- 소켓을 이용해 데이터를 송수신

- 클라이언트와 서버 간 적은 오버헤드

- 실시간 전송 가능

- HTTP 통신에서 Full-duplex 통신 제공

- HTTP Request를 사용하므로 추가적인 방화벽을 열지 않고도 양방향 통신 가능하고 CORS 적용이나 인증 등의 과정을 기존과 동일하게 적용

- 클라이언트와 서버 모두 Web Socket을 지원해야 함

 

 

Socket.io

- Node.js 라이브러리로 실시간 웹 기술을 손쉽게 사용할 수 있는 모듈

- Websock, Polling, Streaming 등 다양한 방법을 하나의 API로 추상화

- 브라우저의 종류에 상관없이 실시간 웹 구현 가능

 

 

차이점

1) Socket

- Web Socket 보다 더 일반적인 개념

- HTTP 프로토콜이나 브라우저에 제한되지 않음

 

2) Web Socket

- 웹 애플리케이션을 위해 서버와 실시간 웹 통신을 지원하기 위한 프토토콜

- HTTP Request를 통해 handshaking 과정을 거침

 

3) Socket.io

- Node.js 기반의 실시간 이벤트 서버를 개발할 수 있는 오픈 소스 라이브러리

 

 

 

댓글