Programming/Spring

[Spring] 쿠키(Cookie)란? (개념 / 특징 / 사용법)

JeongKyun 2022. 3. 12.
반응형

서론

쿠키에 대해 간략히 알아보려고한다. 이번 글에서는 정보 공유를 위한 정리보다는 일단 혼자 정리해보기위해 정리하는 글이기에 다소 보기에 지저분할 수 있다. (추 후 시간이 되면 더 자세한 내용으로 다듬어 보겠음)


쿠키란?

쿠키는 유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 웹사이트에 널리 사용되고 있다. 쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일이다.

웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장한다.

일반적으로 쿠키에는 만료일이 있다. 예를 들어, 브라우저를 닫는 경우 자동으로 삭제되는 쿠키도 있으며(세션 쿠키), 일부는 수동으로 삭제되기 전까지 남아있는 등
더 오랜기간 동안 컴퓨터에 저장되는 쿠키도 있다(지속적 쿠키). 본 웹사이트는 세션 및 지속적 쿠키의 사용을 통해 유저들에게 일관성 있고 간소화된 웹 경험을 제공한다.

쿠키 구조


쿠키 특징

  • 이름, 값, 유효기간, 경로 정보로 구성되어있다.
  • 아스키 문자만 가능하다.
  • 서버에서 생성 후 전송, 브라우저에 저장 -> 유효기간 이후 자동 삭제
  • 서버에 요청 시 domain, path가 일치하는 경우에만 자동 전송
  • 클라이언트에 총 300개의 쿠키를 저장할 수 있다.
  • 하나의 도메인 당 20개의 쿠키를 가질 수 있다.
  • 하나의 쿠키는 4KB(4096byte)까지 저장이 가능하다.



쿠키 동작 순서

  1. 클라이언트가 페이지를 요청
  2. 웹 서버에서 쿠키 생성
  3. 생성한 쿠키에 필요 정보를 담아 클라이언트에게 전달
  4. 해당 쿠키는 클라이언트가 갖고있다가 다시 서버 요청할 때 쿠키를 전송
  5. 동일 사이트 재 방문시 클라이언트 브라우저에 쿠키가 만약 남아있는 경우 요청 페이지와 함께 쿠키를 전송


브라우저(개발자 도구)에서 쿠키 확인 방법

위와 같이 개발자도구에서 쿠키가 들어간 것을 확인할 수 있다.


쿠키 사용법 (생성, 삭제, 변경)

[쿠키 생성]

// 쿠키 생성
Cookie cookie = new Cookie("id",id);

// 쿠키 유효기간 설정(초)
cookie.setMaxAge(60 * 60 * 24) // 24H

// 응답에 쿠키 추가
response.addCookie(cookie);


[쿠키 삭제]

// 변경할 쿠키와 같은 이름 쿠키를 생성.
Cookie cookie = new Cookie("id",id); 

// 유효기간을 0으로 설정
cookie.setMaxAge(0)

// 응답에 쿠키 추가
response.addCookie(cookie);


[쿠키 변경]

// 변경할 쿠키와 같은 이름 쿠키를 생성.
Cookie cookie = new Cookie("id",id); 

// 값의 변경
cookie.setValue(URLEncoder.encode("Jeongkyun"));

// 도메인의 변경
cookie.setDomain("www.naver.com");

// 경로의 변경
cookie.setPath("/ch2");

// 유효기간의 변경
cookie.setMaxAge(60 * 60 * 24 * 7);

// 응답에 쿠키 추가
response.addCookie(cookie);

댓글

💲 많이 본 글