반응형
쿠키(Cookie)
- `클라이언트 측`에 저장되는 작은 텍스트 파일
- 서버에서 클라이언트로 전송되어 클라이언트 측에 저장됩니다.
- 클라이언트 요청 시에 요청 헤더에 쿠키를 포함하여 서버에 전송됩니다.
- 만료 기간을 설정할 수 있어서 일정 기간 동안 유지될 수 있습니다.
- 클라이언트 측에서 수정 가능하므로 보안에 취약할 수 있습니다.
@Controller
public class CookieController {
@GetMapping("/setCookie")
public String setCookie(HttpServletResponse response) {
// 쿠키 생성 및 설정
Cookie cookie = new Cookie("username", "Kim");
cookie.setMaxAge(7 * 24 * 60 * 60); // 7일
cookie.setPath("/");
// 쿠키를 클라이언트에게 전송
response.addCookie(cookie);
return "setCookie";
}
@GetMapping("/getCookie")
public String getCookie(HttpServletRequest request) {
// 요청 헤더에서 쿠키 가져오기
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("username".equals(cookie.getName())) {
// 쿠키 값 사용
String username = cookie.getValue();
// ...
}
}
}
return "getCookie";
}
}
- Cookie를 생성 및 설정하여 `response.addCookie()`를 사용하여 클라이언트에게 Cookie를 전송합니다.
- 클라이언트가 서버에 보낸 요청 헤더에서 `request.getCookies()`를 사용하여 Cookie를 가져옵니다.
- 지정한 이름의 쿠키를 가져오고 싶다면 이와 관련해서 `@CookieValue`를 살펴보시기 바랍니다.
세션(Session)
- `서버 측`에 상태 정보를 저장하는 객체입니다.
- 클라이언트와 서버 간에 세션 ID를 주고받아 세션을 유지합니다.
- 클라이언트가 최초로 서버에 접속하면 서버는 세션 ID를 생성하고 클라이언트에게 전달합니다.
- 클라이언트는 이후 요청 시에 세션 ID를 포함하여 서버에 전송합니다. 세션 ID는 쿠키를 통해 전달됩니다.
- 일정 시간 또는 세션 종료 시간이 지나면 세션이 만료되고 제거됩니다.
- 클라이언트 측에서는 세션 ID만을 가지고 있으므로 보안에 상대적으로 안전합니다.
@Controller
public class SessionController {
@GetMapping("/login")
public String login(HttpSession session) {
// 로그인 처리 로직
session.setAttribute("username", "JohnDoe");
return "login";
}
@GetMapping("/login/form")
public String loginForm(HttpSession session) {
// 세션에서 사용자 정보 가져오기
String username = (String) session.getAttribute("username");
return "form";
}
}
반응형
'Spring Framework' 카테고리의 다른 글
Spring @RequestMapping과 이에 대한 속성 (0) | 2022.09.05 |
---|---|
Spring 스프링 MVC란? (feat. 프런트 컨트롤러 구조) (0) | 2022.09.05 |
Spring 공통적인 작업 처리를 위한 HandlerInterceptor (0) | 2022.09.01 |
Spring 다국어 적용하는 방법들 (0) | 2022.08.31 |
Spring 트랜잭션 (0) | 2022.08.29 |