TIL
< Computer Science 8일차 >
쿠키, 세션의 개념과 차이를 설명해주세요.
쿠키 (Cookies)
- 저장 위치: 쿠키는 클라이언트의 장치(예: 웹 브라우저)에 저장됩니다. 이로 인해 브라우저를 다시 시작하거나 시스템을 재부팅해도 지속됩니다.
- 수명: 쿠키는 브라우저 세션 동안 지속되는 세션 쿠키 또는 특정 만료 날짜가 있는 영구 쿠키일 수 있습니다.
- 용량: 쿠키의 크기는 일반적으로 4KB로 제한됩니다. 또한 브라우저는 도메인 당 쿠키 수를 제한하기도 합니다.
- 보안: 쿠키는 클라이언트의 장치에 저장되므로 크로스 사이트 스크립팅(XSS) 및 크로스 사이트 요청 위조(CSRF) 공격과 같은 더 큰 보안 위험에 노출됩니다. 민감한 정보는 신중하게 저장하고 암호화해야 합니다.
- 접근성: 클라이언트 측에서 JavaScript를 사용하여 쿠키에 접근하고 수정할 수 있습니다.
- 사용: 사용자 환경 설정, 로그인 토큰 등 작은 양의 데이터를 저장하는 데 사용됩니다.
세션 (Sessions)
- 저장 위치: 세션 데이터는 서버에 저장됩니다. 세션 식별자(일반적으로 클라이언트 측 쿠키에 저장됨)는 세션 데이터를 특정 클라이언트와 연결하는 데 사용됩니다.
- 수명: 세션 데이터는 일반적으로 브라우저 세션 동안 지속됩니다. 브라우저가 닫히거나 서버에서 세션이 만료되면 세션은 종료됩니다.
- 용량: 세션은 쿠키와 같은 크기 제한이 없으며 더 많은 데이터를 저장할 수 있습니다.
- 보안: 세션 데이터는 서버에 저장되므로 일반적으로 쿠키보다 더 안전합니다. 클라이언트는 세션 데이터가 아닌 세션 식별자에게만 액세스 할 수 있다.
- 접근성: 세션 데이터는 서버 측에서만 액세스할 수 있으며 클라이언트 측에서 수정할 수 없습니다.
- 사용: 사용자 인증 정보와 같이 더 크고 민감한 정보를 저장하는 데 사용됩니다.
요약
- 쿠키는 클라이언트의 장치에 데이터를 저장하며, 작고 민감하지 않은 데이터에 적합합니다. 쿠키는 설정된 수명에 따라 지속되며, 브라우저 세션에 걸쳐서도 유지된다.
- 세션은 서버에 데이터를 저장하며, 일반적으로 클라이언트 측 쿠키에 저장된 세션 ID로 식별됩니다. 더 크고 민감한 데이터에 적합합니다.
쿠키와 세션은 종종 함께 작동하지만, 저장 위치, 용량, 보안, 접근성의 차이로 인해 웹 개발에서 다른 사용 사례와 고려 사항이 발생합니다.