[HTTP] 4편. 추가 프로토콜

4편 소개

  • HTTP의 비연결성을 극복하는 다양한 기술
  • 9장. 폴링: 클라이언트가 주기적으로 서버에 요청을 보내서 새로운 데이터를 확인하는 방법
  • 10장. 롱 폴링: 폴링 보다 호율적인 통신 기법
  • 11장. SSE: 서버가 클라이언트로 실시간 데이터를 푸시하는 방법
  • 12장. 웹 소켓: 클라이언트와 서버 간의 양방향 통신 프로토콜

9장. 폴링

9.1 구조

  • 지속적인 요청으로 서버와 연결을 유지한다.
  • 네트웍 대역폭과 서버 자원을 낭비할 수 있다
  • 비유: 새로운 소식이 있나요?

9.2 서버 구현

  • 채팅 어플리케이션 제작
  • 채팅 메세지 조회 기능
  • 채팅 메세지 전송 기능

9.3 클라이언트 구현

  • 지속적으로 요청을 생성
  • 수신한 메세지를 출력

9.4 중간정리

  • HTTP 연결을 유지하기 위해 주기적으로 요청을 만드는 기법
  • 특징: 단순한 구현
  • 주의사항 1: 네트웍과 서버 자원을 낭비할 수 있다.
  • 주의사항 2: 지연 시간

참고

10장. 롱 폴링

10.1 구조

  • 서버에 요청하고 데이터가 올 때까지 대기한다.
  • 서버 자원을 낭비할 수 있다.
  • 비유: 새로운 소식이 있나요? 잠깐 기다려 보세요.

10.2 서버 구현

  • 클라이언트 대기열 준비
  • 채팅 메세지 조회 기능
  • 채팅 메세지 추가 기능

10.3 클라이언트 구현

  • 지속적으로 요청 생성
  • 수신한 메세지를 출력

10.4 중간 정리

  • HTTP 연결을 유지하기 위해 응답을 지연하는 기법
  • 특징: 실시간성
  • 주의사항 : 서버 자원을 낭비할 수 있다.

참고

11장. SSE

11.1 구조

  • 서버가 실시시간으로 메세지를 보낸다.
  • 리소스를 효율적으로 사용할 수 있다.
  • 비유: 새 소식이 오면 알려주세요.

11.2 서버 구현

  • 클라이언트 대기열 준비
  • 알림 구독 기능
  • 채팅 메세지 추가 기능

11.3 클라이언트 구현

  • EventSource
  • 수신한 메세지를 출력

11.4 재연결

  • EventSource 객체는 서버와 연결이 끊기면 다시 연결. retry로 설정
  • 이전에 받은 메세지가 있다면 last-event-id 헤더에 값을 실어서 보낸다.

11.5 중간 정리

  • 클라이언트와 서버 연결 유지 및 실시간 메세지 전송 기법
  • EventSource
  • 특징: 실시간 알림을 위한 프로토콜
  • 주의사항: 단방향 메세지

참고

12장. 웹 소켓

12.1 구조

  • HTTP 단방향성의 한계
  • 웹 소켓 프로토콜
  • WebSocket API

12.2 서버 구현

  • 웹소켓을 웹서버와 통합
  • 클라이언트 대기열 준비
  • 채팅 기능 구현

12.3 클라이언트 구현

  • 채팅 UI
  • 웹 소켓 연결
  • 수신한 메세지를 출력
  • 메세지 전송

12.4 중간 정리

  • 웹 소켓 프로토콜
  • WebSocket API
  • 특징: 실시간 양방향 통신
  • 주의사항: 연결 관리

참고