쿠키(Cookie)란?
>> 클라이언트 식별 기술이다.
>> 이름과 값의 쌍으로 구성된 작은 정보, 아스키 문자만 가능하다.
>> 서버에서 생성 후 전송, 브라우저에 저장, 유효기간 이후 자동 삭제
>> 서버에 요청시 domain, path 가 일치하는 경우에만 자동전송 (하위경로 포함)
name = value <-- key와 value로 쌍으로 저장
Max-age : 60*60*24 <-- 유효기간
>> 생성 방법
<쿠키생성>
Cookie cookie = new Cookie("id", "GoodBoy"); <-- 쿠키 생성
cookie.setMaxAge(60*60*24) <-- 유효시간 설정
response.addCookie(cookie); <-- 브라우저로 전달
<쿠키삭제>
Cookie cookie = new Cookie("id","");
cookie.setMaxAge(0) <-- 쿠키의 삭제는 유효기간을 0으로 설정하는것
response.addCookie(cookie);
<쿠키변경>
Cookie cookie = new Cookie("id",""); <-- 변경할 쿠키와 같은 이름의 쿠키 생성
cookie.setValue(URLEncoder.encode("value")) <-- 값의 변경
cookie.setDomain("domain") <-- 도메인 변경
cookie.setPath("URL") <-- 경로 변경
cookie.setMaxAge(60*60*24&7) <-- 유효기간 변경
response.addCookie(cookie); <-- 응답에 쿠키 추가
<쿠키 읽어오기>
Cookie[] cookies = request.getCookie(); <--쿠키 읽기
for(Cookie cookie : cookies){
String name = cookie.getName();
String value = cookie.getValue();
}
응답 헤더에
Set-Cookie : id=GoodBoy; Max-age=86400; Expires=Tue; 16-Nov-2022 11:23:55;로 저장된다.
Max-Age는 상대 시간 (생성된 직후부터 의 시간)이 지난후 쿠키삭제
16-Nov-2022 11:23:55 는 절대 시간
그후 브라우저로 전달되고, 브라우저에 저장된다
그후 쿠키로 저장된 값의 요청이 들어오면
자동으로 요청에 대해 자동으로 응답한다.
>> 로그인 폼에서 로그인시에 쿠키를 생성하고 재 로그인시에 쿠키가 생성되어 있다면
>> 아이디 입력과, 아이디 기억에 체크 되게 한다.
JSP에서 표현되야할 내용이므로 위와 같이 데이터를 추가해준다.
로그인이 출력되어야 하므로 ${cookie.id.value} // 쿠키가 존재한다면 체크되어야 하므로
empty를 사용하였다. ${empty cookie.id.value ? "" : "checked"}
여기서 사용한 EL은 Controller에서 보내줘야 한다.
Controller에서 Cookie를 생성하여
response를통해서 cookie를 보내주었다.
JSP로 보낸 쿠키는 ${cookie.id.value} 를통해서 저장된 asdf를 사용할 수 있다.
따라서 아이디 적는 칸에 asdf가 출력되었고, 아이디기억에 checked되어 있다,
아래는 생성된 쿠키를 보여준 것이다.
'dev > Spring' 카테고리의 다른 글
[Spring] 예외처리 (0) | 2022.06.13 |
---|---|
[Spring] Session (0) | 2022.06.13 |
[Spring] redirect, forward (0) | 2022.06.09 |
[Spring] GetMapping, PostMapping (0) | 2022.06.09 |
[Spring] EL, JSTL (0) | 2022.06.04 |