[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
      • 프로젝트
      • 생각정리
  • 태그

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

티스토리툴바