application / session / cookie

강태석·2022년 10월 7일
0

JSP

목록 보기
5/13
웹에서 상태유지.. 무엇을 말하는 걸까?
http 통신은 클라이언트에서 서버로 요청을 보내고 서버가 응답하는 방식으로 통신이 이루어진다.
여기서 요청을 받고 응답을 보낸뒤엔 통신이 끊어지게 된다. 이때 통신 관계에서 어떠한 데이터를 보관하고 싶을때 사용되는 게 application , session , cookie 이다.
각자 어떤 기능과 차이점이 있는지 알아보도록 하자! 😎

application

  • web application server (WAS)에 저장된다.

  • 서버에 저장되다 보니 하나의 apllication이 생성되고 소멸될 때까지 계속 유지된다.

  • eclipse에서 하나의 project가 하나의 application이라고 생각하면되고,
    하나의 server에는 여러개의 web apllication이 존재 할 수 있다.

  • ServltContext 클래스에서 application 저장소를 생성할 수 있다.

// application 저장소
ServletContext application = arg0.getServletContext();

session

  • 브라우저에 세션 정보가 저장된다.

  • 브라우저에 저장되다 보니 브라우저가 종료되면 세션이 종료된다.

  • 저장 형식이 Object이다.

  • 서버가 허용하는 한 용량 제한이 없다.

  • 쿠키보다 속도가 느리지만 보안이 좋다.

  • 클라이언트 로그인 정보 등을 담기에 유용하다.

  • 내장객체로서 브라우저마다 한개씩 존재하고, 고유한 sessionID 생성 후 정보를 추출할 수 있다.

//session값 설정
session.setAttribute("설정한 세션아이디", 세션에 넣을 값);

//session시간 설정
seesion.setMaxInactiveInterval(60*60);	// 60분동안 세션 유지
seesion.setMaxInactiveInterval(-1);	// 세션의 시간을 무한대로 설정

//session 값 가져오기
session.getAttribute("설정한 세션아이디");

//session 값 삭제
session.removeAttribute("설정한 세션아이디");
session.invalidate();		// 세션 전체 제거, 무효화

  • 클라이언트(=접속자 PC)에 저장된다.

  • 저장형식이 text이다.

  • 쿠키 저장시 만료시점을 설정하며, 브라우저가 종료되어도 만료시점이 지나지 않으면 자동 삭제가 되지 않는다.

  • 하나의 도메인당 20개의 쿠키를 만들 수 있다.

  • 세션보다 속도가 빠르지만 보안이 취약하다.

// 쿠키는 요청객체의 getCookies 메서드로 가져올 수 있다.
Cookie[] cookies = arg0.getCookies();


정리

  • application
    - 사용범위 : 전역 범위에서 사용하는 저장공간
    - 생명주기 : WAS가 시작해서 종료할 때 까지

  • session
    - 사용범위 : 세션 범위에서 사용하는 저장공간
    - 생명주기 : 세션이 시작해서 종료할 때 까지

  • cookie
    - 사용범위 : web브라우저 별 지정한 path범주 공간
    - 생명주기 : 브라우저에서 전달한 시간부터 만료 시간 까지

0개의 댓글