클라이언트에서 요청을 보내면 서버는 헤더에 세션을 담아서 응답하고 브라우저는 쿠키로 저장을 한다.
두번째 요청부터 서버는 요청헤더의 쿠키에 저장된 세션id를 보고 같은 클라이언트에서 온 요청임을 알 수 있다.
그러나, 쿠키를 허용하지 않는 브라우저일 경우 다음 요청 때 쿠키가 생기지 않아 서버는 클라이언트를 구별 할 수 없게 되어 계속 처음 요청이 온 것으로 알기 때문에 매번 세션 객체를 만들어 다른 세션id값을 응답해 서버의 부담이 커진다.
따라서 이 경우 요청url을 통해서 세션을 보내야 이를 해결할 수 있다.
*<%@ page session="false"%> // session = "true" or session = "false"
session = "false"는 기존 세션에 영향을 미치지는 않고 해당 페이지에서 세션의 시작 여부만 결정하는 것으로 세션이 시작된 이후라면 true든 false든 상관 없이 똑같이 세션이 유지가 된다.
따라서 우선 세션이 필요없는 jsp화면에 session = "false" 설정하면 된다.
이후에 session = "false"인 페이지에서 세션을 가져올 때는 sessionScope는 사용이 불가능 하기 때문에 pageContext.request.getSession(false).getAttribute("id")로 사용해야한다.