ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 17 세션(Session)
    Spring/01 Spring MVC 2023. 6. 5. 20:24
    반응형

    1) 세션이란?

    - 서로 관련된 요청들을 하나로 묶은 것 - 쿠키를 이용

                 browser마다 개별(session 객체)를 서버에서 제공

    >> 세션 : 모음, 하나의 요청과 응답 / 하나의 브라우저와 하나의 서버(1:1관계)

    브라우저가 요청을 보내면 서버가 응답(세션 아이디를 쿠키에 저장)

    그 다음 요청부터는 요청에 쿠키가 자동으로 따라간다

         >> 첫 번째 요청 빼고는 나머지는 세션

    세션이 끝나고 나면 새로운 세션 아이디가 발급

     

    - 정리 : 원래 요청과 응답은 독립적인데, 쿠키를 이용하여 세션ID를 브라우저에 전달하여

                 그 이후에 요청에는 같은 세션ID를 요청에 포함하게 된다

                                             (요청들을 하나로 묶어주는 역할세션)

    세션은 로그인부터 로그아웃까지

     

    세션의 종류 방법

    수동 종류 invalidate( );

    자동 종류 Timeout

     

     

     

     

    2) 세션의 생성 과정

    처음에 브라우저가 요청하면, 서버가 세션 객체를 만들게 된다

    세션 객체는 세션ID를 가지고, 세션 객체를 사용할 수 있도록

         쿠키에 세션ID를 담아 응답으로 보낸다

    세션ID : #2F460A 간출여서 이해하기 쉽도록 간추려 놓은 것 원래 세션ID는 길다

     

     

     

    3) 세션 객체 얻기

    컨트롤러에서 세션 저장소 사용법

    세션ID가 일치하는 것을 찾는다

    #2F460Akey, value로 저장

     

     

     

     

     

    4) 세션과 관련된 메서드

     

     

     

     

    5) 세션의 종류

     

    요청 간격이 30분이 넘으면, 응답에서 새로운 세션ID를 준다

    그 다음 요청에는 새로운 세션ID를 사용

        ※session.invalidate( );를 호출해도 다음 요청에 새로운 세션ID를 응답으로 준다

     

     

     

     

     

    6) 쿠키 vs 세션

     

     

     

    쿠키를 허용하지 않는 브라우저에는 모든 URL에 세션ID를 붙여준다

    >> 쿠키를 허용한다면 url링크에 세션ID를 붙여주지 않는다

     

     

    <c:url>을 사용하지 않고, 하드 코딩으로 action="login/login" 으로 한다면?

                                                                                                            (모든 쿠키 차단)

    >> 응답헤더에 세션ID가 요청할때마다 바뀐다(세션 객체가 요청할때마다 생성)

    >> 쿠키 차단, <c:url> 사용하지 않으면 세션ID를 붙여주지 않는다, 서버 입장에서는 브라우저가 계속 처음 요청을 보내는 걸로 인식(클라이언트를 구별할 방법이 없다)

     

     

     

    브라우저가 쿠키를 허용하는지 안하는지 모르기 때문에 세션ID2가지 방법으로 보내준다

    url태그가 자동으로 세션ID를 붙여준다(서버에서 처리)

    응답헤더를 이용해서 세션ID를 보내준다

     

     

     

     

     

    반응형

    'Spring > 01 Spring MVC' 카테고리의 다른 글

    19 예외처리(1) - 실습  (0) 2023.06.13
    18 세션(Session)-실습  (0) 2023.06.11
    16 쿠키(Cookie)  (0) 2023.06.03
    15 redirect와 forward  (0) 2023.06.02
    14 @GetMapping @PostMapping  (0) 2023.05.01
Designed by Tistory.