"a collection of related HTTPtransactions made by one browser to one server"
서로 관련된 개별적인 요청들을 하나로 묶은 것을 세션이라고 하며 브라우저마다 개별 저장소(session객체)를 서버에서 제공한다.
쿠키는 브라우저에 저장 / 세션은 서버에 저장된다
브라우저에서 요청을하면 서버는 응답헤더에 session 아이디를 포함해 응답한다.
서버는 JSESSIONID를 통해 같은 브라우저에서 온 요청인지 확인한다.
HttpSession session = request.getSession();
session.setAttribute("id", "hello");
request 객체에서 session 객체를 확인한다.
세션을 종료하는 방법에는 크게 두가지가 있다.
HttpSession session = request.getSession();
//즉시 종료하기
session.invalidate();
//30분후 종료하기(시간 예약)
session.setMaxInactiveInterval(30*60);
<session-config>
<session-timeout>30</session-timeout>
</session-config>
세션이 종료된 후 새로 세션 객체가 만들어져 쿠키로 반환된다
서버에 부담이 없고 서버 다중화에 유리하기 때문에 규모가 큰 사이트에서는 쿠키를 주로 사용하기도 한다.
브라우저로 처음 접속하면 세션이 생성된다. 브라우저는 생성된 세션을 쿠키에 저장한다.