배운 것
쿠키 개념
쿠키 사용법
내용 정리
쿠키
- 이름, 값 쌍으로 구성된 정보 / 아스키 문자로만 구성되어야 함
- Domain, path, 유효기간이 포함되어 있음
- 클라이언트 식별 기술 (클라이언트를 구별하기 위함)
- 서버에서 생성 후 전송, 브라우저에 저장. 유효기간 이후 자동 삭제됨
- 서버에 요청 시, domain, path가 일치하는 경우에만 요청헤더에 포함되어서 서버로 전송됨
서버에서 생성하고 브라우저에 전송
쿠키를 저장하는 곳은 브라우저
쿠키의 작동 과정
1. 클라이언트가 서버에 요청
2. 서버가 쿠키를 만드는 코드를 실행해서 쿠키를 생성
3. 그 쿠키를 응답에 담아서 브라우저에 전송
4. 서버가 보내준 쿠키가 브라우저에 저장
5. 클라이언트가 서버에 요청했을 때, path가 같으면 쿠키도 요청 메세지에 담겨서 전송
-> 클라이언트 식별 가능
서버가 클라이언트를 식별하기 위해, 응답할 때 쿠키를 만들어서 클라이언트에 전송
클라이언트의 브라우저에 저장해두고 해당 서버에 요청할 때 쿠키도 같이 전송
서버쪽에서는 자신이 발급한 쿠키이기 때문에 식별이 가능
쿠키 생성
- 서버에서 실행 됨
- 요청이 오게되면 서버는 쿠키를 생성하는 코드를 실행해서 쿠키를 만든다
Cookie cookie = new Cookie("id", "asdf"); // 쿠키생성
cookie.setMaxAge(60*60*24); // 유효기간 설정(초)
response.addCookie(cookie); // 응답에 쿠키 추가
쿠키를 삭제하려면 유효기간을 0으로 설정하면 됨
쿠키 읽어 오기
- request객체로부터 getCookies()메소드로 읽어온다
- path와 domain을 확인해서 일치하는 쿠키를 찾고, 쿠키 헤더에 넣어 보내줌
- 쿠키값은 다수일 수 있기 때문에 배열로 받음
Cookie[] cookies = request.getCookies(); // 쿠키 읽기
for(Cookie cookie : cookies) {
String name = cookie.getName();
String value = cookie.getValue();
...
}
느낀 점 / 보완할 점
개념만 놓고보면 별 거 아닌 거 같은데, 개념을 안다고 활용할 수 있는 건 아니라는 걸 깨달았다.
배운 내용을 토대로 구현해보는 노력이 필요하다
'아카이브 > 스프링' 카테고리의 다른 글
| 스파르타 코딩클럽 [ 웹개발의 봄, Spring ] - 2주차 (0) | 2022.01.02 |
|---|---|
| 스프링의 정석 (세션) (0) | 2021.12.28 |
| 스프링의 정석 ( redirect / forward ) (0) | 2021.12.28 |
| 스프링의 정석 ( @GetMapping, @RequestMapping, URL인코딩 ) (0) | 2021.12.27 |
| 스프링의 정석 (@RequestParam, @ModelAttribute) (0) | 2021.12.27 |