본문 바로가기
개발/WEB

웹 저장소 - 쿠키 & 세션 & 로컬 스토리지

by 코드페이퍼 2021. 4. 29.

모 기업에서 면접을 봤다. 세션쿠키랑 쿠키의 차이점을 알려달라 했다. 질문을 이해못하고 나는 세션과 쿠키의 다른점을 신나게 이야기했다. 면접이 끝나고 세션쿠키를 열심히 찾아보니.. 쿠키의 종류를 아는지 물어봤던거 같다. 그래서 이번 글은 쿠키, 세션, 그리고 로컬 스토리지들의 특징을 적어보겠다.

일단 쿠키는 Key : Value 형태로 저장되는 저장소이다.

Session Cookie

우리가 흔히 사용하는 Session은 원래 Session Cookie를 뜻하는 말이다.

  • 만료기간이 없다.
  • 디스크가 아닌 메모리에 저장된다.
  • 브라우저를 닫으면 자동으로 소멸된다.
Persistent Cookie

이게 우리가 아는 Cookie이다. 흔히 Cookie라 부른다.

  • 만료기간이 있다.
  • 최대 4KB까지 저장이 가능하다.
  • 디스크에 저장한다. -> 만료 후 삭제된다.
  • 로컬에 저장된다. (브라우저 닫아도 상관없다.)
  • HTTP 요청때 자동으로 헤더에 딸려 들어간다.
  • CSRF(Cross-site Request Forgery) 공격에 취약하다.
    • 공격자가 url만 알면 해당 url을 클릭하게 유도 후 쿠키를 가져간다. (요청때 쿠키가 자동으로 딸려들어가니까)
Local Storage

HTML5부터 지원하는 브라우저의 공간이다.

  • 최대 5MB까지 저장이 가능하다.
  • 쿠키처럼 자동으로 http 요청에 딸려들어가지 않는다.
  • 로컬에 저장된다. (브라우저 닫아도 상관없다.)
  • XSS (Cross Site Scripting) 공격에 취약하다.
    • 악성 스크립트, 자바스크립트 코드 1줄로 로컬 저장소의 Access-Token값을 노출시킬 수 있다.
그래서 왜 Local Storage를 사용했나요?
  • 쿠키는 모든 HTTP 요청마다 딸려들어간다 -> 무거워진다 -> 성능이 떨어질 수 있다
 

HTTP 쿠키 - HTTP | MDN

HTTP 쿠키 HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저

developer.mozilla.org


면접관님은 결국 우리가 흔히 사용하는 세션이 원래는 Session Cookie이고 우리가 흔히 사용하는 쿠키Persistent Cookie인지를 알고 있었는지 물어봤던거 같다. 해당 차이점은 아래 CISCO 공식 페이지에서 찾을 수 있었다.

www.cisco.com/c/en/us/support/docs/security/web-security-appliance/117925-technote-csc-00.html

 

What are cookies? What are the differences between them (session vs. persistent)?

This document describes what HTTP cookies are and what the difference is between session cookies and persistent cookies.

www.cisco.com

 

'개발 > WEB' 카테고리의 다른 글

React가 🐶같은 이유  (0) 2021.09.28
OAuth 2.0  (0) 2021.05.04
웹 저장소 - 쿠키 & 세션 & 로컬 스토리지  (0) 2021.04.29
OSI 7 Layers  (0) 2021.04.13
상태 저장(저장소)  (0) 2020.03.12
Session(세션)과 Cookie(쿠키)의 차이점 [번역 + msg]  (0) 2020.02.19

댓글0