application
, session
, cookie
- 하나의 application이 생성되고 소멸될 때까지 계속 유지
- 웹 애플리케이션 context의 정보를 담고 있는 객체
- 각 어플리케이션마다 오직 하나의 객체만을 생성
- 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장
- 브라우저 종료 시 종료
- 클라이언트 로그인 정보를 저장하는데 사용
- 범위 : application > session
- 내장 객체로서 브라우저마다 한 개씩 존재하고, 고유한 sessionID 생성 후 정보를 추출한다.
- 보안성이 좋고 저장 용량의 한계가 거의 없다.
- 서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있다.
session값 설정
→ session.setAttribute("설정한 세션아이디", 값);
session 유지 시간 설정
→ session.setMaxInactiveInterval(30*6); // 30분
→ session.setMaxInactiveInterval(-1); // 무한대
session 저장된 값 가져오기
→ session.getAttribute("user_id");
session 값 삭제
→ session.removeAttribute("user_id");
→ sesstion.invalidate(); // 세션 전체 제거, 무효화
- 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 쿠키를 헤더에 담아서 전송한다.
- 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.
- 정보가 사용자 컴퓨터에 저장되기 때문에 보안에 위협을 받을 수 있다.
- 데이터 저장 용량에 제한이 있다. (과자 부스러기처럼 작은 값)
- 일반 사용자가 브라우저 내의 기능인 "쿠키 차단"을 사용하면 무용지물
- application
✔️ 사용범위 : 전역 범위에서 사용하는 저장 공간
✔️ 생명주기 : WAS가 시작해서 종료할 때까지
✔️ 저장위치 : WAS 서버의 메모리
- session
✔️ 사용범위 : 세션 범위에서 사용하는 저장 공간
✔️ 생명주기 : session이 시작해서 종료할 때까지
✔️ 저장위치 : WAS 서버의 메모리
- cookie
✔️ 사용범위 : web 브라우저별 지정한 path 범주 공간
✔️ 생명주기 : 브라우저에 전달한 시간부터 만료 시간까지
✔️ 저장위치 : web 브라우저 메모리 또는 파일
🔍 같은 브라우저일 경우, 같은 세션으로 인식
🔍 다른 브라우저일 경우, 다른 세션으로 인식