웹 환경에서 쿠키(Cookies)와 세션(Session)은 상대 유지 또는 자원 사용 등 비슷한 기능을 수행하고 있습니다. 기능 뿐만 아니라 동작 방식도 비슷하게 작동합니다.
일반적인 세션은 쿠키를 바탕으로 동작하기 때문에 서로 유사하게 작동한다고 볼 수 있습니다.
하지만 여러 가지 차이점도 존재합니다. 작동되는 위치(저장되는 위치)나 저장되는 형식이 서로 다릅니다.
저장되는 위치가 클라이언트인지, 서버인지는 무척 중요한 의미를 갖습니다.
이번 글에서는 [ASP.NET & HTML] 쿠키(Cookies)와 세션(Session) 비교 설명을 해 보겠습니다.
쿠키(Cookie)와 세션(Session) 비교
▶ 쿠키와 세션을 한 눈에 파악할 수 있도록 표로 작성한 내용입니다.
쿠키(Cookies) | 세션(Session) | |
저장되는 곳 | 클라이언트 | 서버 |
저장되는 형식 | 텍스트 형식 | Object 형 |
만료시점 | 쿠키 저장시 설정 가능 (설정 안하면 브라우저 종료시 소멸) | 정확한 시점을 알 수 없다 |
리소스 | 클라이언트의 리소스 사용 | 서버의 리소스 사용 |
용량 제한 | 한 도메인 당 20개 쿠키 하나 당 4KB 총 300개 |
서버가 허용하는 한 용량에 제한이 없음 |
쿠키와 세션의 차이점 비교 설명
▶ 저장되는 곳
쿠키는 클라이언트의 웹 브라우저가 지정하는 메모리 또는 하드디스크에 저장 됩니다. 하지만 세션은 생성된 후 서버의 메모리에 저장 됩니다. 만약 클라이언트 측에서 쿠키 사용을 하지 않도록 브라우저를 설정해 놓으면 쿠키는 저장되지 않습니다.
▶ 만료 시점
쿠키는 저장할 때 Expires 속성을 정의해서 무효화 되어 삭제될 날짜를 정확히 지정할 수 있습니다. 하지만 세션은 클라이언트 측에서 로그아웃 하거나, 설정한 시간 동안 클라이언트 측의 반응이 없을 경우에만 무효화되므로 정확한 만료 시점은 알 수 없습니다.
▶ 리소스
쿠키는 클라이언트 측에 저장되고 클라이언트의 메모리를 사용하기 때문에 서버의 자원을 쓰지 않습니다. 하지만 세션는 서버에 저장되고, 서버의 메모리로 로딩 되기 때문에 세션이 생성될 때마다 그 만큼의 리소스를 차지하게 됩니다.
▶ 용량 제한
쿠키는 클라이언트도 모르게 접속 되는 사이트에 의하여 설정될 수 있습니다. 따라서 쿠키로 인하여 문제가 발생하지 않도록 하기 위하여 한 도메인 당 20개, 총 300개 그리고 하나의 쿠키 당 4Kb로 저장 용량을 제한해 놓고 있습니다. 하지만 세션은 클라이언트가 접속하면 서버에 의해서 생성되므로 그 개수나 용량에 제한이 없습니다.
마무리
이렇게 쿠키와 세션은 서버와 클라이언트 간의 상태 유지, 자원 사용의 효율 그리고 개인정보 보호 등 여러 관점에서 살펴보면, 나름대로 장점과 단점을 가지고 있습니다. 따라서 사이트의 특성에 따라서 세션과 쿠키의 장점을 살려 적절히 사용한다면, 보다 효율적인 사이트를 구축할 수 있을 것입니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^