웹 개발에서 주요한 사용자 인증 및 상태 관리 도구로 활용
쿠키 (Cookie)
- 클라이언트(브라우저)에 저장(클라이언트의 쿠키통, 도메인별로)
- 사용자의 상태를 유지하거나 사용자에 대한 정보를 기록하는 데 사용
- 클라이언트 측에 저장되기 때문에 브라우저를 닫아도 쿠키는 유지됨
- 만료 기간 동안에만 유효
- 일반적으로 안전하지 않은 정보를 저장하기 위한 용도로 사용되며, 보안에 취약
- 클라이언트 조작 가능, 서버에서도 클라이언트 측 쿠키 조작 가능
- 특이사항1 : 해당 도메인에 발송되는 모든 요청에 자동으로 실려서 전송됨
세션 (Session)
- 서버(WAS)에 저장(브라우저별로), 클라이언트 측에서는 세션 정보를 직접 열람할 수 없음
- 서버 측에서 클라이언트의 상태를 유지하는 데 사용되는 기술
- 사용자의 상태를 서버에 저장하고, 클라이언트에는 세션 ID만 전달하여 상태를 유지
- 브라우저를 닫으면 세션 종료, 일반적으로 브라우저 종료 시 세션 ID도 만료
- 쿠키에 비해 상대적으로 안전, 중요한 정보를 저장할 때 사용
- 클라이언트 조작 불가능
- 특이사항1 : 각 브라우저당 하나씩 세션방을 가짐
- 특이사항2 : 특정 브라우저가 접속 후, 딱히 세션 관련 작업을 안하면 굳이 세션방을 만들지 않음
- 특이사항3 : 세션방이 만들어질 때 그 방의 이름을 굉장히 큰 난수성을 지닌 긴 문자열로 하고, 그것을 고객에게 알려줌
- 딱 1번 발급
- 응답에 실린 쿠키(지시문)를 통해 발급
- 헬스장에서 추가요금을 내고 사물함을 배정 받은 후, 사물함 키를 받는 것과 마찬가지
- 특이사항4 : 이미 해당 브라우저의 세션방이 있다면 세션방을 새로 만들지 않음
- 특이사항5 : 브라우저가 쿠키로 가져온 세션방 번호가 틀렸거나 없다면, 해당 방은 곧 사라짐
차이점
- 저장 위치: 쿠키는 클라이언트에 저장되고, 세션은 서버에 저장됩니다.
- 유효 기간: 쿠키는 설정된 만료 기간 동안 유효하며, 세션은 브라우저를 닫을 때 종료됩니다.
- 용도: 쿠키는 주로 클라이언트 측에서 상태를 유지하거나 사용자 정보를 기록하는 데 사용되고, 세션은 서버에서 사용자의 상태를 유지하는 데 사용됩니다.
- 보안: 세션은 서버에 저장되어 클라이언트에서 직접 열람이 어려우므로 쿠키에 비해 보안적으로 뛰어납니다.