1. 세션이론
세션?
- 서로 관련된 요청들을 하나로 묶은 것 - 쿠키를 이용
브라우저마다 개별저장소(session객체)를 서버에서 제공 - 서버에 저장
1 : 1
세션의 정의
"a collection of related HTTP transactions made by one browser to one server"
세션을 종료하려면
1. 수동종료(로그아웃) : invalidate
2. 자동종료 : Timeout
로그인 - 아웃
브라우저가 요청을 하면 무조건 세션을 생성한다 : 세션 객체마다 세션아이디를 가지고 있다
서버는 set-Cookie 응답헤더를 이용하여 세션아이디(JSESSIONID)를 줘서 브라우저에 쿠키가 만들어진다
자동종료 - web.xml
<session-config>
<session-timeout>30<session-timeout>
</session-config>
쿠키 vs 세션
쿠키(Cookie) | 세션(HttpSession) |
브라우저에 저장 | 서버에 저장 |
서버 부담 X | 서버 부담 |
보안에 불리 | 보안에 유리 |
서버 다중화에 유리 | 서버 다중화에 불리 |
서버 다중화 - 로드 밸런싱
-> 세션마다 동기화 해줘야함(개별서버에서는 구분이 안되서)
쿠키를 허용하지 않는 브라우저에서는 모든 요청 URL에 세션아이디를 붙여서 보낸다
-> 서버쪽에서 처리해서 보내주는 것이고 <c:url> 태그 사용해야..
-> 쿠키허용하지 않으면 처리될것이 많아짐..
url태그를 사용하지 않고 쿠키도 차단 해놓으면 서버에서는 클라이언트를 구별할 방법이 없다
-> 서버부담이 늘어난다