#쿠키란?
-클라이언트 단에 저장되는 작은 정보의 단위
-웹사이트 접속 시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일이다.
-웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부를 저장한다.
-유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 웹사이트에 널리 사용되고 있다.
-클라이언트에서 생성하고 저장될 수 있고, 서버 단에서 전송한 쿠키가 클라이언트에 저장될 수 있다.
#쿠키 이용방법
-클라이언트가 페이지를 요청하면 웹서버에서 쿠키 생성
-서버에서생성한 쿠키에 필요 정보를 담아 클라이언트의 브라우저로 전송되어 사용자의 컴퓨터에 저장한다.
-저장된 쿠키는 다시 해당하는 웹 페이지에 접속할 때 브라우저에서 서버로 쿠키를 전송한다.
-쿠키는 이름(name)과 값(value) 쌍으로 정보를 저장한다.
-이름-값 쌍외에도 도메인(Domain), 경로(Path), 유효기간(Max-Age, Expires), 보안(Secure), HttpOnly속성을 저장할 수 있다.
#javax.servlet.http.Cookie
※서버에서 쿠키 생성, Response의 addCookie메소드를 이용해 클라이언트에게 전송
Cookie cookie = new Cookie(이름, 값);
response.addCookie(cookie);
-쿠키의 이름은 일반적으로 알파벳과 숫자, 언더바로 구성한다.
※클라이언트가 보낸 쿠키 정보 읽기
Cookie[] cookies = request.getCookies();
-getCookies()을 호출했을 때, 쿠키의 배열이 return 되는 것을 볼 수 있다.
-하나의 서버가 쿠키를 여러개 보낼 수 있기 때문에, 클라이언트는 이 서버가 보낸 쿠키를 몽땅 같이 보낸다.
-쿠키 값이 없으면 null을 반환한다. 코드 짤 때 null값을 생각 안하면 Exception이 발생할 수 있다.
※클라이언트에게 쿠키 삭제 요청
-쿠키를 삭제하는 명령은 없고 maxAge가 0인 같은 이름의 쿠키를 전송해서 덮어쓰고 쿠키의 유지시간이 0이되서 해당 쿠키는 바로 없어진다.
Cookie cookie = new Cookie("이름", null);
cookie.setMaxAge(0);
※쿠키의 유효기간 설정
setMaxAge()메소드를 사용해서 초 단위의 정수형으로 설정한다. 0이면 쿠키의 삭제
-영속쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지
-세션 쿠키 : 만료 날짜를 생략하면 브라우저 종료시 까지만 유지
#Spring MVC에서의 Cookie사용
※ @CookieValue 애너테이션 사용
-컨트롤러 메소드의 파라미터에서 CookieValue애너테이션을 사용함으로써 원하는 쿠키정보를 파라미터 변수에 담아 사용할 수 있다.
컨트롤러메소드(@CookieValue(value="쿠키이름", requred=false, defaultValue="기본값") String 변수명)
'Back-end > Spring' 카테고리의 다른 글
| [SpringBoot] 시작하기 / 프로젝트 생성 (0) | 2022.03.21 |
|---|---|
| [Spring] 컨트롤러(Controller)작성하기 (0) | 2022.03.20 |
| [Spring] 세션(session)이란? (0) | 2022.03.19 |
| [Spring] @Controller와 @ResponseBody (0) | 2022.03.19 |
| [Spring] 스프링의 구조(MVC) (0) | 2022.03.19 |
댓글