개발_기타/미분류

쿠키 (Cookie)

zuyo 2021. 1. 20. 22:59
반응형

비연결지향형인 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;
            }
        }
    }
    ...
반응형