개발을 하다보면 쿠키 설정, 세션 설정이라는 말을 자주 들었었다. 두 가지 모두 데이터를 임시로 저장하도록 하는 방식이라는 것만 알고 무엇이 다른 건지 잘 알지 못했다. 이번 기회를 통해 약간의 센스를 키워보는 시간을 가져보자.
✏️ 쿠키와 세션의 정의
사용자 상태를 유지하고 정보를 저장하는 데 사용되는 기술
❓그러면 차이는 무엇일까
쿠키 (Cookie)
- 저장 위치 : 쿠키는 클라이언트 측에 저장됩니다. 브라우저에 의해 관리되며, 클라이언트의 로컬 디바이스에 저장되는 것입니다.
- 용량 제한 : 쿠키에는 용량 제한이 있으며 일반적으로 4KB로 제한됩니다.
- 전송 : 쿠키는 HTTP 요청 헤더에 자동으로 포함되어 서버로 전송됩다.
- 보안 : 쿠키는 브라우저에 저장되기 때문에 클라이언트가 내용을 볼 수 있으며, 따라서 보안에 취약할 수 있습니다.
세션 (Session)
- 저장 위치 : 세션은 서버 측에 저장됩니다. 일반적으로 서버 메모리, 데이터베이스, 또는 외부 스토리지에 저장되는 것입니다.
- 용량 제한 : 세션은 서버 메모리에 저장되기 때문에 일반적으로 쿠키보다 더 큰 용량을 저장할 수 있습니다.
- 전송 : 세션은 클라이언트에 대한 유일한 세션 식별자만을 쿠키를 통해 전송하며, 실제 세션 데이터는 서버에 저장됩니다.
- 보안 : 세션은 클라이언트에서 직접 접근할 수 없기 때문에 쿠키보다는 보안적으로 우수합니다.
✅ 쿠키는 언제, 세션은 언제 사용하는 게 좋을까
보통 쿠키는
- 상대적으로 작은 데이터를 유지하고자 할 때 (용량 제한이 있기 때문),
- 클라이언트 측에서 데이터를 유지하고자 할 때,
- 빠른 데이터 전송이 필요한 경우
에 사용하면 좋습니다.
세션은
- 보안이 중요한 정보를 저장해야 할 때,
- 대용량의 데이터를 저장해야 할 때,
- 클라이언트에서 직접 접근하지 않고, 서버에서만 관리해야 할 때
사용하면 좋습니다.
정리하자면
일반적으로 쿠키는 사용자의 선호 설정, 추적 정보 등을 저장하는 데 사용되고
세션은 사용자 인증 정보 및 중요한 상태 정보를 안전하게 저장하는 데 사용됩니다.
👏 마무리
두 기술을 조합하여 웹 애플리케이션에서 효율적으로 상태를 유지할 수 있기에 잘 활용하여 좋은 웹 서비스를 구축하여 보자!!
'개념정리 > CS' 카테고리의 다른 글
[CS] QueryString과 Path Variable의 정의와 사용법 (0) | 2024.04.23 |
---|---|
[CS] port란 무엇일까 (1) | 2023.12.13 |