본문 바로가기
Computer Science

쿠키 Cookie & 로컬 스토리지 Local Storage & 세션 스토리지 Session Storage

by ウリ김영은 2023. 10. 26.

쿠키 : 사용자가 특정한 웹 사이트에 방문할 때, 사용자 컴퓨터에 저장하는 기록 파일

  • 서버의 자원을 전혀 사용하지 않는다
  • 예시) "아이디와 비밀번호를 저장하시겠습니까?"

세션 : 한 명의 사용자(브라우저)의 상태를 유지하는 기술

  • 서버에서 가지고 있는 객체 => 특정 사용자(브라우저)의 상태(예를 들어 로그인 상태)를 유지하기 위해 사용된다.
  • 서버가 클라이언트에게 고유한 Session ID를 부여하면, 클라이언트는 접속할 때마다 Session ID와 함께 요청을 수행한다. 그리고 서버는 Session ID를 통해 해당 유저가 누구인지 확인한다.
  • 예시) 웹 사이트에 한 번 로그인 하면, 다른 페이지로 이동해도 계속 접속 상태가 유지된다.
  • 만약 Session ID를 다른 클라이언트에게 탈취당하면, 다른 사람이 자신의 행세를 할 수 있게 된다.
    • 그래서 개인정보수정 페이지 같은 경우엔, 패스워드 재입력을 하게 한다.
  • 장점
    • 클라이언트 브라우저가 가지고 있는 세션 ID 개인정보를 포함하고 있지 않다 => 민감한 데이터를 클라이언트에 직접적으로 보내지 않는다
  • 단점
    • 악의적인 공격자가 세션 ID를 탈취하여 사용자인 척 위장할 수 있다.
    • 웹 서버에서 세션 정보를 기록하고 있어야 하므로, 접속자가 많을 때 서버에 메모리 부하가 존재할 수 있다.

 

 

 
쿠키
세션
저장 위치
클라이언트
웹 서버
소멸 시기
쿠키 저장 시 만료기간 설정
(브라우저가 종료돼도, 만료 시점이 지나지 않으면 자동으로 삭제되지 않는다)
브라우저 종료 시 만료기간에 상관없이 삭제 (만료기간 지정 가능)
저장 타입
파일
객체
속도
쿠키 > 세션
보안
쿠키 < 세션
저장 정보
지워져도 되고, 조작되거나 가로채이더라도 큰 지장이 없는 수준의 정보들
사용자나 다른 누군가에게 노출되면 안되는 중요한 정보들

로컬 스토리지 Local Storage
쿠키 Cookie
are used to store data in a user's browser
storage size
Larger than cookies (usually 5-10 MB per domain depending on the browser)
Limited to 4KB per cookie
Expiration
No expiration date. Data is stored until it is deleted or cleared by the user
Can be set with an expiration date. If not set, the cookie will be deleted when the user closes the browser
Accessibility
Can only be accessed by the domain that created it. Data is not sent to the server with each HTTP request.
Can be accessed by the domain that created it and any subdomains of that domain. Cookies are sent to the server with each HTTP request.
Security:
: More secure than cookies as it is not sent with each HTTP request. However, it can still be accessed by JavaScript code running on the same domain
Less secure than localStorage as it is sent with each HTTP request. However, cookies can be encrypted and/or signed to prevent unauthorized access
 
provides a simpler and more consistent API for storing and retrieving data
Cookies have more complex API for setting and managing them.
 
can be accessed using JavaScript
 
a good choice for storing larger amounts of data that needs to persist across multiple sessions or page reloads on the same domain
a better choice for storing small amounts of data that need to be shared with the server or accessed by subdomains.