에듀테크 프로젝트 대시보드
브라우저 저장소: 쿠키 vs 로컬스토리지 vs 세션스토리지
| localStorage | sessionStorage | ||
|---|---|---|---|
| 용량 | ~4KB | ~5~10MB | ~5~10MB |
| 만료 시점 | 지정 만료일 또는 세션 종료 | 직접 삭제 전까지 영구 | 탭(또는 창) 닫으면 소멸 |
| 서버 전송 | 모든 HTTP 요청에 자동 포함 | 전송 안 됨 (JS로만 접근) | 전송 안 됨 (JS로만 접근) |
| 탭 간 공유 | 같은 도메인이면 공유 | 같은 오리진 모든 탭 공유 | 탭(컨텍스트)별로 독립 |
| 주요 용도 | 세션 인증, 서버가 읽어야 하는 값 | 테마·설정 등 영구 저장 | 폼 임시 데이터, 탭 한정 상태 |
fetch
본문에 담아 보내지 않는 한 서버는 그 존재조차 알 수 없습니다.
HttpOnly를 붙이면 JS(document.cookie)로는 아예 읽을 수 없고,
브라우저가 요청 시에만 자동으로 첨부합니다. localStorage는 JS로 접근하는 것이 원래 목적이라 이런 보호가 불가능합니다.
localStorage.getItem()
한 줄로 통째로 유출됩니다. HttpOnly 쿠키는 이 경로로 훔칠 수 없습니다.
SameSite 속성이나 CSRF 토큰이 함께 필요합니다.