[면접 준비] 쿠키, 세션의 개념과 차이를 설명해보세요 (24/04/03)

2024. 4. 3. 09:22공부/면접 준비

쿠키와 세션

쿠키와 세션은 모두 HTTP의 Connectless와 Stateless를 보장하기 위해 사용되는 기술로 웹에서 사용자의 상태를 유지하고  유저를 식별하기 위해 사용됩니다. 하지만 둘 사이에는 중요한 차이점이 존재합니다.

 

쿠키

  1. key-value값으로 구성된 텍스트 파일
  2. 웹 서버는 사용자가 브라우저에 정보를 저장하도록 지시하고, 브라우저는 그 정보를 클라이언트 컴퓨터에 저장
  3. 만료 날짜가 존재하며, 만료 날짜가 없는 쿠키는 세션 쿠키로 간주하여 브라우저가 닫힐때 까지 유지
  4. 사용 목적
    1. 세션 관리 : 로그인, 사용자 정보, 접속 시간, 장바구니 등 서버가 알아야할 정보 저장
    2. 개인화 : 사용자 마다 다른 그사람에게 맞는 페이지를 보여준다
    3. 트래킹 : 사용자의 행동과 패턴을 분석하고 기록
  5. 단점
    1. 클라이언트에서 쿠키를 쉽게 확인하고 변조할 수 있다
    2. 쿠키 자체가 민감한 정보를 담고 있다

세션

  1. 서버 측에서 사용자를 관리하기 위한 방법이다
  2. 각 사용자에 대해 서버가 고유한 세션 ID를 생성하고, 이를 쿠키 또는 URL매개변수를 통해 클라이언트에게 전달하여 사용자를 식별한다
  3. 일정 기간 유지되며, 브라우저를 닫거나 세션이 만료될 때 까지 유지된
  4. 사용 목적 
    1. 사용자나 다른 누군가에게 노출되면 안되는 보안적으로 중요한 정보들을 서버 안에서 다루기 위해 사용
    2. 로그인 상태, 장바구니 내역, 사용자 프로필 등 중요 정보를 유지하기 위해 사용
  5. 단점
    1. 서버에 저장되기 때문에 세션이 늘어날 경우 서버에 부하가 걸린다
    2. 세션에 대한 정보가 서버에 있기 때문에 쿠키에 비해 느리다

 

 

답변

쿠키와 세션은 모두 HTTP의 Connectless와 Stateless를 보장하기 위해 사용되는 기술로 웹에서 사용자의 상태를 유지하고  유저를 식별하기 위해 사용됩니다. 하지만 둘 사이에는 중요한 차이점이 존재합니다.

쿠키는 클라이언트에 자장되고 세션은 서버에 저장됩니다. 이 때문에 세션은 상대적으로 안전하며 쿠키는 클라이언트에서 탈취되거나 수정되는 등의 보안 위험이 있을 수 있습니다. 

마지막으로, 세션은 서버 메모리에 저장되므로 제한된 용량만큼의 데이터를 저장할 수 있지만, 쿠키는 사용자의 하드 드라이브에 저장되므로 더 많은 데이터를 저장할 수 있습니다.

이러한 차이점을 고려하여 쿠키와 세션을 사용하여야 합니다.