728x90
반응형
쿠키란 ?
- 클라이언트 로컬에 저장되는 key, value가 들어있는 작은 데이터 파일
- 서버에서 HttpResponse Header에 Set-Cookie 속성을 이용해서 클라이언트에 쿠키를 제공
- 이름, 값, 만료날짜, 경로 정보 등이 들어있음
- client에서 서버에 정보를 요청할 때 참조한다.
- HTTP 프로토콜의 특징이자 약점 보완을 위해 사용
- 비연결지향(Connectionless)
- HTTP는 클라이언트가 Request를 서버에 보내고 서버가 클라이언트로 Response하면 응답을 끊는 특성이 있음
- 상태없음(Stateless)
- 커넥션을 끊는 순간 클라이언트와 서버 통신이 끝나며 상태정보는 유지하지 않는 특성
- 비연결지향(Connectionless)
쿠키 세팅
@GetMapping(value = "/setCookie")
public String setCookie(HttpServletResponse response,
@RequestParam("cookieName") String cookieName, @RequestParam("cookieValue") String cookieValue) {
// cookie 객체 생성
Cookie rememberCookie = new Cookie(cookieName, cookieValue);
// 모든 경로에서 사용
rememberCookie.setPath("/");
rememberCookie.setMaxAge(60 * 60 * 24 * 30); // 30일
rememberCookie.setDomain("localhost");
response.addCookie(rememberCookie);
return "setCookie";
}
HttpServletResponse에 cookie를 세팅한다.
쿠키 전달받기
@GetMapping("/getCookie")
public String getCookie(HttpServletRequest request,
@CookieValue(value = "hi") Cookie cookie) {
Cookie[] cookies = request.getCookies();
Arrays.asList(cookies).stream()
.forEach(c -> log.debug(c.getName() + ":" + c.getValue()));
log.debug("cookie :{}", cookie.getValue());
return "getCookie";
}
@CookieValue를 이용하면 Cookie 객체를 받을 수 있다.
HttpServletRequest를 이용해서 cookie객체를 꺼낼 수도 있다.
728x90
반응형
'Spring' 카테고리의 다른 글
Spring @Resouce, @Autowired, @Inject 의존 관계 주입 차이점 (0) | 2022.05.26 |
---|---|
HttpSession 사용 방법 사용 이유 (0) | 2022.05.26 |
Spring Boot security Oauth2 로그인 연동 (구글/카카오) (1) | 2022.02.24 |
Spring Boot @DataJpaTest 사용방법 (0) | 2022.02.21 |
Spring Boot @EnableAutoConfiguration (0) | 2022.02.16 |