[JSP] application / session / cookie

김윤섭·2023년 3월 16일
0

JSP

목록 보기
3/18
post-thumbnail

상태유지의 필요성

ex) 로그인 - 로그아웃 누르기 전까지 상태를 유지함

  • 사용자에게 넘어온 정보(로그인)를 유지하고 사용자가 어떤 페이지를 방문했는 지 추적하기 위해 다음과 같은 객체를 사용한다.

  • application, session , cookie

(1) application (X)


  • 서버가 스타트 되면 생기고 끝나면 사라짐
  • 하나의 프로젝트가 생성이 되고 소멸될 때까지 계속 유지된다.
  • 소멸되면 정보가 사라지므로 잘 안씀
  • ex. 방문자 수 확인하는 프로그램
  • 브라우저에 영향을 주지 않는다.
  • 브라우저를 종료하거나 새로고침하면 초기화

(2) session (★★★)


session란?

  • 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장
    (브라우저 종료 시 종료, 클라이언트 로그인 정보)

    ex. 은행 페이지 -> 로그인 만료시간 30분 -> 30분 뒤 세션(session)이 만료되었습니다. (= 로그인 시간이 만료되었습니다.)

① session 장단점

장점

  • 서버에서 접근할 수 있기 때문에 보안성이 좋고, 저장 용량의 한계가 거의 없다.

단점

  • 서버에 데이터가 저장되기 때문에, 부하가 걸릴 수 있다.

② session 사용하기

  • 세션값 설정
  • 세션유지시간 설정하기(초단위)
		//60분 동안 저장
		session.setMaxInactiveinterval(60*60);
        //무한대로 설정
        session.setMaxInactiveinterval(-1);
               
  • 세션에 저장된 값 가져오기
		session.getAttribute("설정이름");
  • 세션삭제
		session.removeAttribute("설정이름");
        
        //세션 전체 제거
        session.invalidate();

  • 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 쿠키를 헤더에 담아서 전송한다.

ex. 쿠키라는 공간에 접근하려면 매번 허락받아야 함 (사이트 들어갈 때 모든 쿠키 허용)
// 고객 pc의 특정 공간에 접근 -> 그러므로 매번 허락받음

장점

  • 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.

단점

  • 정보가 사용자 컴퓨터에 저장되기 떄문에 보안에 위협을 받을 수 있다.
  • 데이터 저장 용량에 제한이 있다.
  • 과자 부스러기처럼 작은 값을 저장 할 수 있다.
  • 일반 사용자가 브라우저 내의 기능인 "쿠키차단"을 사용하면 무용지물

사용자 -> 요청 -> 서버
사용자 <- 응답(+쿠키) <- 서버 : 서버가 쿠키를 담아 응답
사용자 -> 요청(+쿠키) -> 서버 : 쿠키를 담아서 다시 서버로
사용자 <- 응답 <- 서버

(4) 쿠키 vs 세션


① 쿠키

  • 클라이언트 ( = 접속자 PC ) 에 저장
  • 저장형식 : text
  • 만료시점 : 쿠키 저장시 설정
  • 사용자원 : 클라이언트 리소스
  • 용량제한 : 총 300개
  • 속도 : 세션보다는 빠름
  • 보안 : 세션보다는 취약

② 세션

  • 웹 서버에 저장
  • 저장형식 : Object
  • 만료시점 : 브라우저 종료시 삭제
  • 사용자원 : 웹 서버 리소스
  • 용량제한 : 서버가 허용하는 용량제한
  • 속도 : 쿠키보다는 느림
  • 보안 : 쿠키보다는 좋음
profile
안녕하세요

0개의 댓글