[세션] <c:url 태그를 사용해야 하는 이유

Jiwon Park·2023년 3월 22일
0

클라이언트에서 요청을 보내면 서버는 헤더에 세션을 담아서 응답하고 브라우저는 쿠키로 저장을 한다.
두번째 요청부터 서버는 요청헤더의 쿠키에 저장된 세션id를 보고 같은 클라이언트에서 온 요청임을 알 수 있다.

그러나, 쿠키를 허용하지 않는 브라우저일 경우 다음 요청 때 쿠키가 생기지 않아 서버는 클라이언트를 구별 할 수 없게 되어 계속 처음 요청이 온 것으로 알기 때문에 매번 세션 객체를 만들어 다른 세션id값을 응답해 서버의 부담이 커진다.
따라서 이 경우 요청url을 통해서 세션을 보내야 이를 해결할 수 있다.

<c:url 태그를 이용하면 쿠키를 허용하지 않는 브라우저일 때 세션을 자동으로 추가해 get방식으로 url을 통해 보낸다.


*<%@ page session="false"%> // session = "true" or session = "false"
session = "false"는 기존 세션에 영향을 미치지는 않고 해당 페이지에서 세션의 시작 여부만 결정하는 것으로 세션이 시작된 이후라면 true든 false든 상관 없이 똑같이 세션이 유지가 된다.

false인 페이지에서 세션이 시작되지 않는것일뿐이다.

따라서 우선 세션이 필요없는 jsp화면에 session = "false" 설정하면 된다.
이후에 session = "false"인 페이지에서 세션을 가져올 때는 sessionScope는 사용이 불가능 하기 때문에 pageContext.request.getSession(false).getAttribute("id")로 사용해야한다.

profile
안녕하세요

0개의 댓글