ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HttpSession
    Spring 2021. 6. 20. 21:09

    웹에서 로그인의 가장 기본적인 방식은 HttpSession 객체를 이용하여 사용자의 정보를 보관하고, 필요한 경우 사용하거나 수정하는 방식이다.

    HttpSession의 동작은 세션 쿠키를 통해 이루어진다. 서버는 접속한 브라우저에게 고유한 세션쿠키를 전달하고, 매번 브라우저에서 서버를 호출할 때 세션 쿠키를 가지고 다니기 때문에, 이를 마치 열쇠처럼 사용해서 필요한 데이터를 보관한다.

    세션쿠키가 열쇠라면 HttpSession은 열쇠가 필요한 잠금장치가 되어있는 상자와 비슷하다. 이 상자들이 모여있는 공간을 세션 저장소(Session Repository)라고 하는데, 너무나 많은 세션이 존재하면 서버의 성능에 영향을 미치기 때문에 서버는 일정시간 이상 사용되지 않는 상자들을 정리하는 기능을 가지고 있다.           web.xml에서 HttpSession의 timeout을 설정할 수 있다.

    session을 이용하는 방식의 핵심은 HttpSession을 이용하여 원하는 객체를 보관할 수 있다는 점이다. 사용자는 항상 열쇠에 해당하는 세션쿠키를 사지고 접근하고, 서버의 내부에 상자가 필요한 객체를 보관하기 때문에 안전하다는 장점을 가지고 있다.

    session에 보관된 객체는 JSP에서 EL을 이용해 자동으로 추적한다. 

    요약하면,

    HttpSession은 둘 이상의 페이지의 요청 또는 웹사이트를 방문한 사용자를 식별하고 해당 사용자에 대한 정보를 저장하는 방법을 제공한다.

    • 서블릿 컨테이너는 Http 클라이언트와 Http 서버 사이의 세션을 만드는데 사용한다.
    • Session은 사용자의 둘 이상의 연결 또는 페이지 요청을 통해 지정된 기간 동안 유지된다.
    • Session은 보통 웹사이트를 여러번 방문하는 하나의 사용자에 해당한다.
    • 서버는 쿠키를 사용하거나 URL 다시쓰기 등과 같은 여러가지 방법으로 session을 유지할 수 있다.

    HttpSession은 서블릿이 다음 작업을 수행하도록 허용한다.

    • Session 식별자, 생성시간, 마지막 접근 시간과 같은 세션에 대한 정보를 조작하고 볼 수 있다.
    • 객체를 Session에 바인딩하여 여러 사용자 연결에서 사용자 정보가 유지되도록 한다.

    어플리케이션이 Session에 객체를 저장하거나 제거할 때, Session은 객체가 HttpSessionBindingListener인터페이서 구현여부를 확인한다. 이 경우 서블릿은 객체가 Session에 바인딩 되거나 바인딩 해제되었음을 바인딩 메서드의 실행이 완료된 후에 알려준다. 해제되거나 만료된 Session이 해제되거나 만료된 후에 알려준다. 

    'Spring' 카테고리의 다른 글

    reCAPTCHA v2  (0) 2021.06.26
    @RequestBody / @ResponseBody  (0) 2021.06.22
    Spring-4[Filter, AOP, Interceptor]  (0) 2021.06.12
    Spring-3[log4j]  (0) 2021.06.11
    Spring-1  (0) 2021.06.08
Designed by Tistory.