본문 바로가기

개인 공부/기술 면접

[ #8 ] 쿠키, 세션의 개념과 차이를 설명해보세요

키워드 : 무상태(stateless), 이 기술이 왜? 생겨났는지

 

쿠키와 세션은 HTTP의 Connectless(비연결성)와 Stateless(무상태성)을 보장하기 위해 사용되는 기술로 웹에서 사용자의 상태를 유지하고 유저를 식별하기 위해 사용되는 기술입니다.

비연결성은 실제로 요청을 주고받을 때만 연결을 유지하고 응답을 주나면 연결을 끊는 성질을 의미하고, 무상태성은 서버가 클라이언트의 상태를 보존하지 않는 특징을 말합니다

쿠키는 클라이언트 측에서 정보를 저장하는 작은 데이터 파일이고, 
세션은 서버 측에서 사용자 상태를 관리하기 위한 방법입니다

쿠키와 세션의 큰 차이점은 사용자의 정보가 저장되는 위치이며 
쿠키는 서버의 자원을 전혀 사용하지 않으며, 세션은 서버의 자원을 사용합니다

보안 면에서 세션이 더 우수하며,
쿠키는 사용자의 로컬 시스템에 저장되어 보안에 취약하지만
세션은 쿠키를 이용해서 session-id만 저장하고 구분하여
서버에서 처리하기 때문에 비교적 보안성이 높습니다

속도 면에서 쿠키가 더 우수하며,
쿠키는 쿠키에 정보가 있기 때문에 서버에 요청 시 속도가 빠르고 
세션은 정보가 서버에 있기 때문에 처리가 요구되어 비교적 느린 속도를 냅니다

세션이 쿠키에 비해 보안이 높은 편이나 쿠키를 사용하는 이유는 세션은 서버에 저장되고, 서버의 자원을 사용하기에 서버 자원에 한계가 있고, 속도가 느려질 수 있기 때문에 자원관리 차원에서 쿠키와 세션을 적절한 요소 및 기능에 병행 사용하여 서버 자원의 낭비를 방지하며 웹사이트의 속도를 높일 수 있습니다