Skip to main content

HTTP 상태 관리

작성일 : 2025.02.16

HTTP 프로토콜의 특성과 한계​

HTTP 프로토콜은 두 가지 중요한 특성을 가지고 있습니다:

1. 비연결지향성(Connectionless)​

  • 클라이언트가 요청을 보내면 서버는 응답 후 즉시 연결을 종료합니다.
  • HTTP/1.1에서는 keep-alive를 통해 커넥션 재활용이 가능해졌습니다.

2. 무상태(Stateless)​

  • 연결이 끊어지면 클라이언트와 서버 간의 상태 정보가 유지되지 않습니다.
  • 이러한 특성으로 인해 서버는 클라이언트를 구별할 수 없다는 한계가 있습니다.

상태 관리 솔루션​

주요 특징​

  • 클라이언트 브라우저에 저장되는 작은 데이터 파일
  • 저장 제한:
    • 클라이언트당 300개
    • 도메인당 20개
    • 쿠키당 4KB
  • 자동 전송: HTTP 요청 시 헤더에 자동으로 포함되어 서버로 전송
  • 만료기간 설정 가능

주요 사용 사례​

  • 로그인 세션 관리
  • 사용자 선호도 저장
  • 사용자 행동 추적

2. 세션 스토리지 (Session Storage)​

주요 특징:​

  • 용량: 약 5~10MB (브라우저별 상이)
  • 만료기간: 브라우저 탭/창을 닫으면 즉시 삭제
  • 서버 통신: 자동 전송되지 않음
  • 접근 범위: 동일한 탭에서만 접근 가능

주요 사용 사례​

  • 일회성 폼 데이터
  • 임시 작업 내역
  • 페이지 간 데이터 전달

3. local 스토리지 (Local Storage)​

HTML5에서 도입된 클라이언트 저장소입니다.

주요 특징:​

  • Key-Value 형태의 저장소
  • 문자형 데이터만 저장
  • 용량: 보통 5~10MB (브라우저별 상이)
  • 만료기간: 영구 저장 (사용자가 직접 삭제하기 전까지 유지)
  • 서버통신: 자동 전송되지 않아 CSRF에 안전
  • 접근 범위: 동일 도메인 내 모든 페이지에서 접근 가능

주요 사용 사례​

  • 사용자 설정
  • 장바구니 정보
  • 캐시된 데이터
  • 자동 로그인 등에 활용

비교 분석​

보안성​

세션 > 웹 스토리지 > 쿠키

성능​

쿠키 > 웹 스토리지 > 세션

저장 용량​

웹 스토리지 > 세션 > 쿠키

영속성​

로컬 스토리지 > 쿠키 > 세션 = 세션 스토리지

선택 가이드​

  • 서버와의 통신이 필요한 데이터: Cookie
  • 영구적으로 보관할 데이터: localStorage
  • 임시로 필요한 데이터: sessionStorage