[JSP] 쿠키와 세션

2024. 9. 5. 02:08·Back-End/Back-End

[작성일: 2023. 04. 05]

 

쿠키(Cookie)

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

 

 

 

 

쿠키의 장단점

  • 클라이언트의 특정 폴더에 정보를 저장하므로 서버의 부하를 줄임.
  • 정보가 사용자 PC에 저장되기 때문에 보안의 위협 존재
  • 데이터 저장 용량에 한계가 있음.
  • 일반 사용자가 브라우저 내 기능 "쿠키 차단"을 사용하면 쿠키 사용 불가

 

 

 

 

동작 방식

쿠키 생성

  • 웹 서버에 쿠키를 생성하고 쿠키에 응답 데이터를 담아서 웹 브라우저에 전송함.

 

 

 

쿠키 저장

  • 웹 브라우저는 응답 데이터에 있는 쿠키를 메모리나 파일에 저장함.

 

 

 

쿠키 전송

  • 웹 브라우저는 쿠키 요청이 있을 때마다 웹 서버에 전송함.
  • 웹 서버는 쿠키를 활용하여 필요한 작업을 수행함.

 

 

 

 

쿠키 생성 및 사용 방법

쿠키 생성 후 response 객체에 담기

  • 이미 쿠키가 존재하면 값을 수정함.
Cookie cookie = new Cookie("쿠키 이름", "쿠키 값");
response.addCookie(cookie);

// 한글일 때 인코딩이 필요할 경우
String str = URLEncoder.encode("값", "UTF-8");
Cookie cookie = new Cookie("쿠키 이름", str);
response.addCookie(cookie);

 

 

 

쿠키 유무 확인하고 쿠키값 얻어오기

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

 

 

 

쿠키 삭제

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

 

 

 

 

 

세션(Session)

  • 내장 객체로서 브라우저마다 한 개씩 존재하고 고유한 SessionID 생성 후 정보를 추출함.
  • JSP에서만 접근이 가능하므로 보안성이 좋고 저장 용량의 한계가 거의 없음.
  • 서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있음.
  • 쿠키보다 세션이 더 안정적이고 안전하나, 세션을 저장할 공간이 부족할 경우 쿠키사용 권장

 

 

 

 

 

 

 

 

 

 


🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.

 

저작자표시 비영리 변경금지 (새창열림)
'Back-End/Back-End' 카테고리의 다른 글
  • [Spring] Spring Framework
  • [JSP] 내장 객체, GET과 POST
  • [JSP] 자바빈즈
  • [JSP] JSP란?
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    DB
    javascript
    백준
    성능최적화
    sql
    의존성주입
    jsp
    프로그래머스
    spring
    Security
    스프링
    알고리즘
    다형성
    김영한
    Java
    html
    데이터베이스
    최주호
    자바스크립트
    생성자
    MVC
    게시판만들기
    Swift
    HTTP
    Database
    JPA
    자바
    Spring Security
    변수
    객체
  • hELLO· Designed By정상우.v4.10.0
뚜비
[JSP] 쿠키와 세션
상단으로

티스토리툴바