본문 바로가기
Spring

[Spring]쿠키(Cookie)

by eunoo 2022. 8. 9.

1. 쿠키란?

- 이름과 값으로 구성된 정보

- 클라이언트를 식별하기 위해 사용

- 아스키 문자만 저장 가능 (한글은 URL인코딩해서 저장해야함.)

- 처음 요청할 때 서버에서 생성 후 브라우저에 저장

- 유효기간 이후 자동 삭제

 

<동작 과정>

1. 클라이언트가 서버에 처음 요청

2. 서버에서 쿠키 생성 후 응답헤더에 쿠키를 추가하여 응답

HTTP/1.1 200
Set-Cookie:id=qqqqq
Content-Type: text/html;charset=UTF-8
Content-Language: ko-KR

3. 브라우저에 쿠키 저장

4. 다음 요청 시 쿠키를 요청 헤더에 넣어서 요청.

POST /ch1/login/loing HTTP/1.1
Host: localhost
Connection: keep-alive
Cookie: id=qqqq; JSESSIONID=2F460A779BD2F460A779BD

 

2. 실습- 아이디 저장 기능 만들기

쿠키 생성

Cookie cookie = new Cookie("id", "aaaa");// 쿠키 생성
cookie.setMaxAge(60*60*24); // 유효기간 24시간
response.addCookie(cookie); //응답헤더에 추가

응답헤더에 Set-Cookie id=aaaa; Max-Age=86400;... (유효시간) 추가되어 응답.

 

쿠키 삭제

Cookie cookie = new Cookie("id","");// 삭제할 쿠키와 같은 이름 쿠키 생성
cookie.setMaxAge(0);//유효기간 0으로
response.addCookie(cookie);

쿠키 변경

Cookie cookie = new Cookie("id", "")//변경할 쿠키와 같은 이름 쿠키 생성
cookie.setValue(URLEncoder.encode("은효"));//값 변경
cookie.setDomain("www.eunoo.com"); // 도메인 변경
cookie.setPath("/ch1");//경로 변경
cookie.setMaxAge(60*60*24*7);//유효기간 변경
response.addCookie(cookie);

쿠키 읽어오기

 

Cookie[] cookies = request.getCookies();//쿠키 읽기, 여러 개일 수도 있으니 배열로.없으면 null

for(Cookie cookie: cookies){
    String name = cookie.getName();
    String value = cookie.getValue();

    System.out.printf("[cooke]name= %s, value=%s", name, value);
}

'Spring' 카테고리의 다른 글

[Spring] XML로 빈 등록하는 방법  (0) 2023.04.21
[Spring] ObjectMapper  (0) 2023.01.17
[Spring] redirect와 forward  (0) 2022.08.09
[Spring] @RequestParam과 @ModelAttribute  (0) 2022.08.04
[Spring] 요청 URL 경로 출력하기(feat. Filter)  (0) 2022.07.14

댓글