JSP - Cookie & Session
04 Mar 2021 | JSPJSP - Cookie & Session
-
Cookie
-
쿠키는 웹브라우저가 보관하고 있는 데이터로 웹서버에 요청을 보낼때 함께 전송된다
-
쿠키 동작 방식
-
쿠키는 JSP 웹서버에서 생성하거나 JS를 사용해서 클라이언트 측에서 생성한다
-
생성된 쿠키는 응답 데이터와 함께 전송된다
-
웹 브라우저에서 쿠키를 저장소에 보관한다. 종류에 따라 메모리나 파일로 저장
-
웹 브라우저는 저장된 쿠키를 요청이 있을시 웹 서버에 전송한다. 이 쿠키를 사용해서 웹 서버에서 필요한 작업을 수행한다.
-
-
쿠키 특성
-
특정 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일로 4KB 이하로 생성된다
-
개인의 정보는 되도록 쿠키에 저장하지 않는 것이 좋다
-
보안문제로 웹 브라우저 자체에 쿠키 거부 기능을 설정할 수 있다
-
-
쿠키 구성요소
- 이름 : 각각 쿠키를 구별하는데 사용되는 이름
- 값 : 쿠키 이름과 관련된 값
- 유효시간 : 쿠키 유지시간
- 도메인 : 쿠키를 전송할 도메인
- 경로 : 쿠키를 전송할 요청 경로
-
쿠키 생성
<% Cookie cookie = new Cookie("CookieName","CookieValue"); response.addCookie(cookie); %>
- cookie.getName, cookie.getValue로 값을 꺼내어 사용한다
- 쿠키 관련 메소드
- 쿠키 경로
- 쿠키는 그 쿠키를 생성한 서버에만 전송된다. 같은 도메인을 사용하는 서버에 대해서 모두 쿠키를 보내고 싶으면 setDomain() 메소드를 이용하여 처리할 수 있다
- .xxx.co.kr : . 으로 시작하는 경우에는 관련된 도메인 모두에게 쿠키를 전송
- www.xxx.co.kr : 특정 도메인에 대해서만 쿠키를 전송
- 도메인뿐만 아니라 setPath() 메소드를 이용하여 경로를 지정할 수 있다
- cookie.setPath(“/path”); => /path 또는 /path/sub 하위 경로에만 전송
- 쿠키의 유효시간
- 쿠키는 유효시간을 설정할 수 있다. 설정하지 않으면 웹 브라우저를 닫는 순간 삭제된다
- 유효시간을 설정하면 브라우저를 닫더라도 삭제되지 않는다
-
-
Session
- 쿠키가 웹 브라우저 쪽에 상태를 유지하기 위한 정보를 저장했다면, 세션은 웹 서버 쪽의 웹 컨테이너에 상태를 유지하기 위한 정보를 저장한다
- javax.servlet.http 패키지의 HttpSession 인터페이스를 통해 세션을 사용한다
- 웹 컨테이너는 기본적으로 하나의 웹 브라우저에 하나의 세션을 생성한다
- 세션은 웹 브라우저마다 따로 존재하기 때문에 웹 브라우저 관련 1 대 1 정보를 저장한다
- 서버와 관련된 정보를 노출시키지 않기 위해 쿠키보다 세션을 통한 상태관리가 효율적
- 세션 생성
<%@ page session = "true" %> <!-- 기본 설정이 true이므로 굳이 안해도 됨-->
- 세션 내장객체의 주요 메소드
- 한번 생성된 세션은 종료되기 전까지 지속적으로 유지된다
- setAttribute(), getAttribute() 메소드로 상태관리를 할 수 있다
<% session.setAttribute("name","limu"); %> <% String name = (String)session.getAttribute("name"); %>
-
세션 종료
- invalidate() 메소드를 호출하여 세션을 종료할 수 있다. 기존 세션 객체는 삭제된다
- 세션 유효시간
- dd(web.xml)에 유효시간을 설정하는 방법
<session-config> <session-timeout>10</session-timeout> </session-config>
- setMaxInactiveInterval() 메소드를 활용한 유효시간 설정방법
<% session.setMaxInactiveInterval(10*60); %>
참고 자료
KG 아이티뱅크 강의 자료
처음해보는 JSP&Servlet 웹 프로그래밍