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 |
댓글