반응형
비연결지향형인 HTTP 프로토콜은 응답 후에 연결을 지속하지 않으며, 기존의 정보 또한 저장하지 않는다.
이런 부분을 보완하기 위하여 쿠키(Cookie)와 세션(Session)을 이용할 수 있다.
주로 로그인이나 장바구니와 같이 사용자의 정보를 저장해두는데 사용된다.
쿠키는 세션과 달리 클라이언트(Client)에 데이터를 저장한다.
서버가 쿠키를 클라이언트에 저장해두면, 나중에 웹서버가 쿠키의 정보를 필요로 할 때 클라이언트가 웹서버로 쿠키의 정보를 보내준다.
보안에 취약하고 용량이 작다는 단점이 존재하며 웹브라우저가 쿠키를 차단하는 경우 사용할 수 없다.
1. 쿠키 생성
@RequestMapping("/login.do")
public String login(String id, String password, HttpServletResponse response) {
// ...
// 쿠키 생성
Cookie cookie = new Cookie("id",id);
cookie.setMaxAge(365*24*60*60); // 유효기간 1년으로 설정
response.addCookie(cookie);
// ...
2. 쿠키 불러오기
@RequestMapping("/")
public ModelAndView index(HttpServletRequest request) {
String id = null;
// 쿠키 가져오기 (항상 배열로 전체 쿠키를 가져올 수 밖에 없다고 한다)
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if (cookie.getName().equals("id")) {
id = cookie.getValue();
break;
}
}
}
...
반응형
'개발_기타 > 미분류' 카테고리의 다른 글
윈도우에서 리눅스 사용하기 (WSL2) (0) | 2021.01.28 |
---|---|
Chocolatey | 윈도우에서 리눅스처럼 프로그램 설치하기 (0) | 2021.01.22 |
세션 (Session) (0) | 2021.01.20 |
리다이렉트 (Redirect), 포워딩 (Forward) 방식의 차이 (0) | 2021.01.17 |
데이터 전송 방식 (GET, POST) (0) | 2021.01.17 |