[Web] 웹소켓(Web Socket)이란?

[Web] 웹소켓(Web Socket)이란?

Web Socket

  • Transport protocol의 일종으로 쉽게 이야기하면 웹버전의 TCP 또는 Socket(소켓)
  • 서버와 클라이언트간의 socket connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술
  • Real time web application : 서버 or 클라이언트 쪽 데이터가 실시간으로 업데이트 되는 웹 어플리케이션

Web Socket을 사용하는 이유

  • 웹 소켓 사용 이전에는 Client-Server간의 Socket Connection같은 영구적인 연결이 되어 있지 않고, Client쪽에서 Request를 보내야만 Response를 하는 방식임
    • 이러면... 문제가 뭐냐면.... Request를 안 보내면 서버쪽에서 업데이트를 해도 HTTP를 못 보냄

Web Socket 작동원리

  • 서버와 클라이언트간의 연결은 HTTP 프로토콜을 통해 이루어짐
    • 만약 연결이 정상적으로 이루어진다면 서버와 클라이언트 간에 WebSocket연결이 이루어지고 일정 시간이 지나면 HTTP연결은 자동으로 끊어짐

Web Socket 단점

  • Web Socket은 장점이 많지만, 그에 못지 않는 비용을 지불해야함
  • 오래된 버전의 웹 브라우저에서는 지원하지 않음
    • 인터넷 익스플로어 같은 경우 10 버전부터 지원
  • 프로그램 구현에 보다 많은 복잡성 초래

Web Socket의 예

  • 페이스북 같은 SNS 어플리케이션
  • LOL 같은 멀티플레이 게임들
  • 구글 Doc같은 여러 명이 동시 접속해서 수정할 수 있는 Tool


참고

  • http://utk-unm.blogspot.com/2016/10/websocket.html
  • http://webclub.tistory.com/463



댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[운영체제] 파일의 구조(순차 파일, 직접 파일, 색인 순차 파일)

[운영체제] MLQ & MFQ