[기초 CS 개념] 쿠키 vs. 세션

감자둘둘·2023년 5월 25일
0

기초 CS 개념

목록 보기
2/5
post-thumbnail

✅ 포스팅 요약

제곧내.

내가 헷갈려서 내가 보려고 만든 쿠키와 세션의 차이점을 정리한 포스팅이다.

공통점

쿠키랑 세션은 일단 모두 웹 개발에서 사용되는 메커니즘으로, 상태(state)를 유지(maintain)하고 사용자 정보(user information)을 관리(manage)한다.

차이점

쿠키랑 세션은 아래의 6가지의 기준에서 차이점을 보인다.
기준별 자세한 차이점은 아래 메인에서 다루겠다.

  1. 저장 위치(Storage Location)
  2. 저장 데이터(Data Storage)
  3. 데이터 용량(Data Capacity)
  4. 보안(Security)
  5. 만료(Expiration)
  6. 확장성(Scalability)

🚨 잘못된 정보가 있으면 언제든지 댓글로 알려주세요. (아무도 안 보는 것 같지만...쩝)

✔ 쿠키(Cookie)란?

  • 저장 위치

    • 클라이언트 측, 정확히 말하면 사용자의 브라우저에 저장된다.
    • 따라서 쿠키에 저장된 정보는 사용자가 임의로 수정할 수 있다.
  • 저장 데이터

    • 쿠키의 데이터는 key-value 포맷으로 작은 텍스트 파일에 저장된다.
    • 쿠키에 저장된 데이터는 각 요청마다 클라이언트와 서버 사이에서 왔다 갔다 한다.
  • 데이터 용량

    • 세션에 비해 사용할 수 있는 스토리지 용량이 작아 적은 양의 데이터만 저장할 수 있다.
  • 보안

    • 세션에 비해 보안이 취약하다.
    • 클라이언트 측에 저장되기 때문에 변조(tampering)나 도용(theft)의 위험이 있다.
  • 만료

    • 쿠키는 서버 또는 클라이언트에 의해 만료 날짜를 설정할 수 있다.
    • 이러한 데이터는 특정 기간이 지나면 만료된다.
  • 확장성

    • 쿠키는 클라이언트 측에 저장되므로 서버 리소스에 큰 영향을 미치지 않고 확장이 가능하다.

✔ 세션(Session)이란?

  • 저장 위치

    • 서버 측에 저장된다.
    • 따라서 세션에 저장된 정보는 사용자가 임의로 수정할 수 없다.
    • 참고로, REST API에서 사용하는 stateless system에서는 session data가 발생하지 않는다.
  • 저장 데이터

    • 세션은 데이터를 서버 측에 저장하고, 각 클라이언트마다 고유한 식별자(session ID)를 할당한다.
    • 이 고유 식별자(session ID)는 일반적으로 쿠키에 저장되거나, URL에 추가되어 세션을 식별하는데 사용된다.
  • 데이터 용량

    • 쿠키에 비해 사용할 수 있는 스토리지 용량이 커 많은 양의 데이터를 저장할 수 있다.
  • 보안

    • 쿠키에 비해 보안이 강하다.
  • 만료

    • 세션에 저장되는 데이터에는 대부분 사전에 정의된 타임아웃(timeout)이 존재하며, 이 시간이 지나거나 사용자가 로그아웃 시 서버에서 제거된다.
  • 확장성

    • 세션은 서버 측 저장소를 필요로 하므로 많은 수의 활성 세션을 유지하면 서버 리소스를 소모할 수 있다.
profile
한 줄 소개.

0개의 댓글