세션 쿠키와 지속 쿠키

dasong·2021년 12월 20일
5

면접 공부를 하다가 세션 쿠키와 지속 쿠키에 대해 잘못 알고 있는 블로그 포스트들이 있어서 정리해보고자 합니다.

잘못 알려진 개념

세션 쿠키: 만료 시점을 정하면 세션 쿠키. 브라우저가 종료되면 쿠키는 사라짐
지속 쿠키: 만료 시점을 정하지 않으면 지속 쿠키. 브라우저가 종료돼도 쿠키는 남아있는다.

여기서 의문점이 생겼습니다.
세션 쿠키는 만료 시점이 따로 있는데 브라우저가 종료되면 사라지고, 지속 쿠키는 만료 시점이 따로 없는데 브라우저가 종료돼도 쿠키가 남아있는다..?
그럼 만료 시점을 왜 정하는 것이며, 만료 시점이 없는 지속 쿠키의 경우에는 브라우저가 종료되어도 쿠키가 남아있으면 쿠키는 계속 쌓일텐데 어떻게 관리하는걸까..?

처음에는 그 원리에 대해서 궁금해했었는데 구글링을 하다보니 제가 읽었던 포스트가 잘못된 정보를 알려주고 있었음을 알아냈습니다!

정답

세션 쿠키: 만료 날짜/시간을 지정하지 않으면 세션 쿠키. 브라우저 메모리에 저장. 현재 세션이 끝날 때 삭제됩니다. 브라우저는 "현재 세션"이 끝나는 시점을 정의하며(ex. 브라우저가 닫히면 세션 종료), 어떤 브라우저들은 재시작할 때 세션을 복원해 세션 쿠키가 무기한 존재할 수 있도록 합니다.

지속 쿠키: 만료 날짜/시간을 지정하면 지속 쿠키. 파일로 저장되므로 브라우저가 종료되어도 쿠키는 남아있습니다. Expires 속성에 명시된 날짜에 삭제되거나, Max-Age 속성에 명시된 기간 이후에 삭제됩니다.

그렇습니다. 만료 시점을 지정하지 않으면 세션 쿠키이고 만료 시점을 정하면 지속 쿠키입니다!

여담

면접에서 이 문제가 나왔다면 (나올리는 없겠지만) 틀린 답을 내놓을 뻔 했습니다.. 이래서 선택적 정보 수용이 중요한 것 같습니다 ㅠㅠㅠㅠ 포스트를 다 믿진 말자..!

참고한 자료들

https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies
https://www.cisco.com/c/en/us/support/docs/security/web-security-appliance/117925-technote-csc-00.html
https://stackoverflow.com/questions/34870747/session-cookie-vs-persistent-cookie
그 외 수많은 포스트들

profile
소비자에서 생산자로

0개의 댓글