본문 바로가기
java/spring

spring - session

by rewind 2024. 7. 5.

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태그를 사용하지 않고 쿠키도 차단 해놓으면 서버에서는 클라이언트를 구별할 방법이 없다

-> 서버부담이 늘어난다