HTTP 프로토콜은 상태가 없고 , 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 갖고 있지 않는 특성을 가지고 있다. 즉, 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다(connectionless).
이런부분을 해결하기 위해서 웹서버측에 웹브라우저의 정보를 저장한후 계속 되는 웹 브라우저 요청속에 포함되어 있는 웹 브라우저의 정보와 비교해서 동일한 웹 브라우저로부터 온 요청을 판단할수 있다.
쿠키는 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법중 하나이다. 쿠키는 웹브라우저의 정보를 웹브라우저에 저장하므로 이후에 서버로 전송되는 요청에는 쿠기가 가지고 있는 정보가 같이 포함돼 전송된다. 이떄 웹서버는 웹 브라우저의 요청 속에 포함되어 있을 쿠키를 읽어서 새로운 웹 브라우저인지 이전에 요청을 했던 웹 브라우저인지를 판단할수 있다. 이러한 방법으로 웹 브라우저를 통해서 특정 사이트에 접속하면 웹 브라우저에 쿠기가 저장되어 접속한 사용자의 정보가 유지된 것이다.
웹브 -> 웹서 ->쿠키 웹브-> 웹브에 쿠키저장 ---이후 웹브서버요청시 쿠키정보도 같이 웹서보로 전송
쿠키생성
javax.servlet.http패키지 않에 Cookie클래스사용
Cookie cookie = new Cookie(String name, String value);
이렇게 생성한 쿠키는 response객체에 추가해주어야 웹브라우저 응답시 웹브라우저에 저장됨..
response.addCookie(name);
쿠키 생성후 쿠키의 값을 새로운 값으로 지정할 때는 setValue()메소드를 사용
cookie.setValue(newValue);
웹 브라우저의 요청과 함께 request 객체에 실려 온 쿠키를 읽어 올 때는 request 객체의 getCookies()메소드를 사용 즉, getCookies()메소드를 사용해서 웹 브라우저에 저장된 쿠키를 읽어옴.
Cookie[] cookies = request.getCookies();
부라우저의 모든 쿠키를 읽어오기 때문에 배열타입임..
쿠키의 수명은 setMaxAge()로 설정...
cookie.setMaxAge(int expiry);
시간은 초단위로 넣음 1시간이라면 60분 이고 초라면 3600초임.. 즉 3600초를 넣어주면 1시간후 안됨.
'JSP' 카테고리의 다른 글
톰캣 8.5 OPENSSL 인증서 설치 개발 테스트!! (0) | 2022.08.04 |
---|---|
intellij ssh 원격 romote 인텔리제이 원격 웹 web jsp php (0) | 2014.09.05 |