• -동두천 2.9℃
  • -강릉 4.1℃
  • 구름많음서울 3.9℃
  • 맑음대전 4.1℃
  • 맑음대구 6.5℃
  • 맑음울산 6.4℃
  • 맑음광주 6.5℃
  • 맑음부산 5.2℃
  • -고창 5.0℃
  • 맑음제주 7.8℃
  • -강화 3.2℃
  • -보은 2.9℃
  • -금산 3.2℃
  • -강진군 6.2℃
  • -경주시 6.7℃
  • -거제 4.5℃
기상청 제공

인터넷

jsessionid 가 url 뒤에 붙는 문제

  • 등록 -0001.11.30 00:00:00

문제:

url에 자동으로 jsessionid가 붙는 현상이 나타났다.

http://www.nnn.com/***.html;jsessionid=4FC3696B9AB26551428596B1FA3E6B94


jsessionid란?

was에 login하면 http session이 생성이 되고 id 쿠키값을 서버에 전달하게 된다.


세션객체는 서버에 저장이 되어 정보를 알고 있지만, 클라이언트는 확인할 수 없다.

서버는 클라이언트에게 이 값을 주었다가 필요할 때 이 값으로 확인을 하게 된다.


http 통신이 stateless이기에 위와같은 방법으로 쿠키 정보 확인을 하고 있다.


브라우저가 쿠키를 사용하지 못하도록 설정되었을 경우엔

URL rewriting을 사용하고 이로 인해 자동 url생성시 jsessionid값이 붙는 현상이 발생한다.



URL Rewriting은

javax.servlet.http.HttpServletResponse 인터페이스의 encodeURL을 확인한다.

JSESSOINID값을 확인해 보려면 아래 같이 실행해 보면 알 수 있다.


<%
Cookie[] cookies = request.getCookies();
  if (cookies != null) { 
    for (int i=0; i<cookies.length; i++) { 
      out.println("<li>" + cookies[i].getName() + " : " + cookies[i].getValue());
    } 
  } 
%>
내가 해결한 방법은 해당 url로 rewirte되는 주소를 기존에 /html 에서 http://xxx.xxx.xxx/html 으로 변경하기.