Web 생태계에서 HTTP 프로토콜은 상태를 유지하지 않는다는 특성 때문에 사용자의 상태를 유지하기 위한 수단으로 오랜 기간 사용되었던 것은 세션과 쿠키이다. 사용자는 웹 애플리케이션을 사용하는 동안 정보를 계속 유지하거나 전달할 수 있다. 유사한 목적을 가지고 사용되는 세션과 쿠키가 어떤 차이점을 가지는 지 알아보자.
1. 저장 위치
세션은 서버 측에 데이터를 저장하는 기술이며, 주로 사용자의 상태를 유지하기 위해 세션 변수를 저장하는 데 활용된다. 사용자가 웹 페이지에 접속하면 서버는 해당 사용자에 대한 고유한 세션을 생성하고, 세션 변수에 정보를 저장하여 상태를 유지한다.
반면 쿠키는 클라이언트 측에 데이터를 저장하는 작은 텍스트 파일로, 사용자의 브라우저에 저장됩니다. 쿠키는 주로 사용자가 웹 사이트를 방문할 때 정보를 유지하거나 추적하기 위해 사용됩니다.
2. 보안
일반적으로 세션은 쿠키보다 보안 상 안전하다. 세션 데이터는 클라이언트에 직접 저장되지 않으므로 탈취, 변형의 위험이 쿠키보다는 적다.
쿠키는 클라이언트 사이드에 저장되므로 보안에 취약할 수 있으므로 민감한 정보를 저장하는 경우 주의가 필요하다.
3. 수명
세션은 일반적으로 사용자가 브라우저를 닫거나 일정 시간 동안 활동이 없을 때 만료된다.
반면 쿠키는 만료 날짜를 지정하여 영구적으로 저장되거나 일정 기간 동안 유지된다. 쿠키의 만료 날짜를 따로 설정하지 않으면 해당 쿠키는 "세션 쿠키"가 된다. 세션 쿠키는 브라우저 세션이 유지되는 동안에만 존재하며, 브라우저를 닫으면 자동으로 삭제된다.
4. 용도
세션은 사용자의 로그인 상태, 장바구니 내용 등과 같이 서버 측에서 관리해야 하는 정보를 저장하는 데 사용된다.
쿠키는 사용자의 선호 설정, 방문 기록, 광고 추적 등과 같이 클라이언트 측에서 유지해야 하는 정보를 저장하는 데 사용된다.
'백엔드 개발자라면 대답해야 할 100가지 질문' 카테고리의 다른 글
22. 세션의 동작 과정 (0) | 2024.06.27 |
---|---|
20. JSP 기본 객체 (0) | 2023.10.11 |
19. Servlet과 JSP의 차이점 (0) | 2023.10.10 |
18. Deep Copy vs Shallow Copy (0) | 2023.10.05 |
17. 자바 리플렉션(reflection)이란 무엇인가? (0) | 2023.09.26 |
댓글