KoreaIt Academy/JSP

[JSP] 쿠키(Cookie)와 세션(Session)

hongeeii 2021. 9. 12.
728x90
반응형

1. 공통점 : 웹 통신간 유지하려는 정보(ex:로그인 정보 등)를 저장하기 위해 사용하는 것입니다.

2. 차이점 :  쿠키 : 개인 PC에 저장됩니다.

               세션 : 접속중인 웹 서버에 저장됩니다.


쿠키(Cookie) 

웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청을 보낼 때 헤더에 담아서 전송합니다.
웹 브라우저는 쿠키가 삭제되기 전까지 웹 서버에 쿠키를 전송합니다.

장단점
- 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있습니다.
- 정보가 사용자 컴퓨터(로컬)에 저장되기 때문에 보안에 위협받을 수 있습니다.
- 데이터 저장 용량에 한계가 있습니다.
- 일반 사용자가 브라우저 내의 기능인 "쿠키 차단"을 사용했을 경우 쿠키는 무용지물이 됩니다.

동작 방식
1) 쿠키 생성 : 웹 서버에서 쿠키를 생성하고 쿠키에 응답 데이터를 담아서 웹 브라우저에 전송합니다.
2) 쿠키 저장 : 웹 브라우저는 응답 데이터를 담고 있는 쿠키를 메모리나 파일로 저장합니다.
3) 쿠키 전송 : 웹 브라우저는 쿠키 요청이 있을 때마다 웹 서버에 전송합니다.
                  웹 서버는 쿠키를 사용해서 필요한 작업을 수행할 수 있습니다.

사용 예시

  1. 방문했던 사이트에 다시 방문 하였을 때 아이디와 비밀번호 자동 입력
  2. 팝업창을 통해 "오늘 이 창을 다시 보지 않기" 체크

쿠키 생성 및 사용 방식
1) 쿠키 생성 후 response 객체에 담아줍니다.(이미 쿠키 이름이 존재하면, 값 수정)

Cookie cookie = new Cookie("쿠키이름", "쿠키값");
response.addCookie(cookie); 


2) 쿠키 유무를 확인하고 쿠키의 값을 얻어옵니다. 

 String cookieCheck = request.getHeader("Cookie");
     if(cookieCheck != null){
     Cookie[] cookies = request.getCookie();
     for(Cookie cookie : cookies){
          cookie.getName();
          cookie.getValue();
     }


3) 쿠키를 삭제합니다. 

String cookieCheck = request.getHeader("Cookie");
     if(cookieCheck != null){
     Cookie[] cookies = request.getCookie();
     for(Cookie cookie : cookies){
          cookie.setMaxAge(0);
          response.addCookie(cookie);
     }

 

 

 

세션(Session) 

내장 객체로서 브라우저마다 한 개씩 존재하고, 고유한 SessionID 생성 후 정보를 추출합니다.

장단점
JSP에서만 접근할 수 있기 때문에 보안성이 좋고, 저장 용량의 한계가 거의 없습니다.
서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있습니다.

* 쿠키보다 세션을 쓰는 것이 더 안정적이고, 안전하지만 세션에 저장할 공간이 부족할 경우 쿠키가 사용됩니다.

 

동작 방식

  1. 클라이언트가 페이지를 요청합니다. (사용자가 웹사이트 접근)
  2. 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여,
    클라이언트가 해당 session-id를 보냈는지 확인합니다.
  3. session-id가 존재하지 않는다면,
    서버는 session-id를 생성해 클라이언트에게 돌려줍니다.
  4. 서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장합니다.
    쿠키 이름 : JSESSIONID
  5. 클라이언트는 재접속 시,
    이 쿠키(JSESSIONID)를 이용하여 session-id 값을 서버에 전달합니다.



사용 예시

  • 화면이 이동해도 로그인이 풀리지 않고 로그아웃하기 전까지 유지

 

세션의 메소드

728x90
반응형

추천 글