ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 세션(session)과 쿠키(cookie)
    웹프로그래밍/기초 2018. 6. 9. 17:58
    세션(session)?

    웹 서버측에서 사용자 정보를 저장하기 위해 사용하는 객체.

    클라이언트의 정보를 저장할 수 있다. 쿠키와 차이점이 있다면, 세션은 웹 브라우저가 아니라 서버에 값이 저장된다는 점이다. 



    세션 ID

    컨테이너는 웹 브라우저마다 세션을 생성한다. 그리고 수 많은 웹브라우저의 세션을 구분하기 위해서

    웹 브라우저의 최초 요청 시 컨테이너는 유일한 세션 ID를 부여하고 응답으로 보낸다.

    이후 웹 브라우저의 요청시 세션 ID를 함께 보내서 해당하는 세션을 연결한다.

    기본적으로 세션 ID는 쿠키에 저장된다. 만약 웹 브라우저가 쿠키를 사용하지 않도록 설정 했다면 세션ID를 저장할 수 없다.



    URL-재작성

    쿠키를 사용할 수 없을 경우, 요청 URL마다 세션ID를 파라미터로 추가해주는 방법으로 JSP 같은 동적인 페이지에서만 가능하다.

    자세한 내용은 아래 링크를 참고..




    세션 사용법

    HttpSession session = request.getSession();


    위에 코드 한 줄이면 컨테이너가 알아서 처리한다. 

    컨테이너는 세션ID 생성하고 생성한 쿠키 객체에 저장한다. 그리고 응답 객체에 쿠키를 설정한다.

    이 후 요청시 컨테이너가 쿠키의 세션 ID로 세션을 연결한다.

    만약 일치하는 세션이 없을 경우 새로운 세션을 만든다.



    세션이 종료 되는 경우 3가지

    1. 설정한 세션 유지 시간이 다 되었을때

    2. 세션 객체에 invalidate() 메서드를 실행 했을때

    3. 어플리케이션이 종료되는 경우



    참고:

    >자바에서 세션 관리 






    쿠키

    주로 세션관리, 유저 트래킹, 유저 정보를 저장하는 용도로 사용 된다.

    기본적으로 세션과 생존 기간이 같다. 웹 브라우저 닫히면 쿠키도 사라진다.

    하지만 setMaxAge() 메서드로 기한을 설정하면 쿠키를 계속 유지할 수 있다.


    쿠키 형태

    -서버 측에서 쿠키를 보낸다.

    Set-Cookie: username=john


    -사용자가 요청시 쿠키를 보낸다.

    Cookie: username=john


    쿠키는 '키'='값' 형태이며 HTTP 요청/응답 해더에 위치한다.

    쿠키 객체를 호출한 뒤 username으로 요청에 대한 쿠키 값(john)에 접근 할 수 있다.




    참고:

    >쿠키