protocol

개발빼-엠·2023년 1월 31일
0

배움을 기록

목록 보기
36/47
post-thumbnail

long polling

  • 클라이언트에서 서버로 http 요청을 보낸다 → 기다리다가 서버에서 해당 클라이언트로 전달할 이벤트가 발생하는 순간 응답을 보내며 연결이 종료된다.
  • 다수의 클라이언트에게 동시에 이벤트가 발생할 경우 서버의 부담이 증가한다.

streaming

  • 클라이언트에서 서버로 http 요청을 보낸다 → 서버에서 클라이언트로 이벤트를 전달할 때 해당 클라이언트와의 연결을 해제하지 않고 필요한 메세지만 보내기를 반복한다.
  • 서버로 다시 요청을 보내지 않고 다시 연결을 하지 않아도 되므로 부담이 덜 하다.

web socket

  • 브라우저와 서버 간에 인터랙티브 통신 세션을 설정할 수 있는 양방향 프로토콜.
  • http와 호환된다.
    • 처음 접속은 http 요청으로 한다. → handshaking → 양방향 통신이 가능해진다. cors, 인증 등 기존과 동일하게 적용된다.
    • handshaking: 클라이언트에서 서버로 웹소켓 열기 요청을 보내고 서버가 수락을 하는 방식이다. http1.1프로토콜을 사용하여 요청을 보낸다.
  • ajax, long polling, streaming 과 비교했을 때 데이터의 변경 빈도가 잦고 실시간으로 업데이트사항을 보여줘야 하며, 대기 시간이 짧고 대용량의 조합인 경우 websocket이 좋은 대안이 될 수 있다. (금융, 게임, 메시지 등에 사용될 수 있음)
  • http 통신은 연결과 해제를 반복하기 때문에 효율이 떨어질 수 있다. 그래서 html5에서 웹소켓을 포함하게 되었다. 웹소켓은 클라이언트가 접속 요청을 하고 웹 서버가 응답한 후 연결을 계속 유지한다 → 그래서 클라이언트의 요청이 없이도 데이터를 전송할 수 있는 프로토콜이다.
  • ws, wss(secure)

xmpp

  • Extensible Messaging and Presence Protocol
  • xml에 기반한 메시지 지향 프로토콜

IRC

  • internet relay chat
  • 실시간 채팅 프로토콜
  • TCP 기반의 프로토콜

0개의 댓글