개념정리/CS

[CS] 쿠키(Cookie)랑 세션(Session)의 차이! 간략하게 알아보자

iamjisu 2024. 2. 6. 12:41

개발을 하다보면 쿠키 설정, 세션 설정이라는 말을 자주 들었었다. 두 가지 모두 데이터를 임시로 저장하도록 하는 방식이라는 것만 알고 무엇이 다른 건지 잘 알지 못했다. 이번 기회를  통해 약간의 센스를 키워보는 시간을 가져보자.

 


✏️ 쿠키와 세션의 정의

사용자 상태를 유지하고 정보를 저장하는 데 사용되는 기술

 


❓그러면 차이는 무엇일까

쿠키 (Cookie)

  • 저장 위치 : 쿠키는 클라이언트 측에 저장됩니다. 브라우저에 의해 관리되며, 클라이언트의 로컬 디바이스에 저장되는 것입니다.
  • 용량 제한 : 쿠키에는 용량 제한이 있으며 일반적으로 4KB로 제한됩니다.
  • 전송 : 쿠키는 HTTP 요청 헤더에 자동으로 포함되어 서버로 전송됩다.
  • 보안 : 쿠키는 브라우저에 저장되기 때문에 클라이언트가 내용을 볼 수 있으며, 따라서 보안에 취약할 수 있습니다.

 

 

세션 (Session)

  • 저장 위치 : 세션은 서버 측에 저장됩니다. 일반적으로 서버 메모리, 데이터베이스, 또는 외부 스토리지에 저장되는 것입니다.
  • 용량 제한 : 세션은 서버 메모리에 저장되기 때문에 일반적으로 쿠키보다 더 큰 용량을 저장할 수 있습니다.
  • 전송 : 세션은 클라이언트에 대한 유일한 세션 식별자만을 쿠키를 통해 전송하며, 실제 세션 데이터는 서버에 저장됩니다.
  • 보안 : 세션은 클라이언트에서 직접 접근할 수 없기 때문에 쿠키보다는 보안적으로 우수합니다.

✅ 쿠키는 언제, 세션은 언제 사용하는 게 좋을까

보통 쿠키
- 상대적으로 작은 데이터를 유지하고자 할 때 (용량 제한이 있기 때문),
- 클라이언트 측에서 데이터를 유지하고자 할 때,
- 빠른 데이터 전송이 필요한 경우

에 사용하면 좋습니다.


세션
- 보안이 중요한 정보를 저장해야 할 때,
- 대용량의 데이터를 저장해야 할 때,
- 클라이언트에서 직접 접근하지 않고, 서버에서만 관리해야 할 때

사용하면 좋습니다.

 

정리하자면

일반적으로 쿠키는 사용자의 선호 설정, 추적 정보 등을 저장하는 데 사용되고
세션은 사용자 인증 정보 및 중요한 상태 정보를 안전하게 저장하는 데 사용됩니다.

 


👏 마무리

두 기술을 조합하여 웹 애플리케이션에서 효율적으로 상태를 유지할 수 있기에 잘 활용하여 좋은 웹 서비스를 구축하여 보자!!