본문으로 바로가기

쿠키(Cookie)와 세션(Session)

category WEB/Servlet,JSP 2020. 6. 9. 20:34

쿠키(Cookie)

HTTP의 비연결지향적 특성에 따라 클라이언트의 정보를 계속 유지할 수 있는 방안으로
쿠키라는 개념이 도입됬다.

  • 웹서버가 브라우저에게 지시하여 클라이언트의 컴퓨터에 파일 또는 메모리에 작은 기록정보를 저장합니다.
  • 클라이언트가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보를 업데이트할 수 있습니다.

Cookie의 구성요소

  • Name - 쿠키 이름

  • Value - 쿠키의 저장된 값

  • Expires - 쿠키가 언제삭제 될지 정한다.

    expires="Wdy, DD-Mon-YYYY HH:MM:SS GNT"

  • Domain - 쿠키가 사용될 도메인 지정
    domian = nesoy.github.io

  • Path - 쿠키를 반환할 경로를 결정

쿠키(Cookie) 단점

  • 쿠키에 대한 정보를 매 HttpHeader에 추가하여 보내기 때문에 상당한 트래픽이 발생합니다.
  • 결제정보 등 쿠키에 저장했을 때 보안에 대한 문제점이 발생할 수 있습니다.

사용자가 페이지 요청을 하면 서버는 페이지와 쿠키를 같이 응답하고 이후에
사용자가 같은서버에 다른 페이지 요청을 할 경우 그 쿠키가 같이 요청된다.

세션(HttpSession)

  • 유일값인 SessionID를 부여하여 사용자의 정보를 서버DB에 저장합니다.
  • 클라이언트는 SessionID를 브라우저의 쿠키로 저장된 형태로 가지고 있습니다
  • 브라우저가 종료되면 사라집니다.

세션 절차

  1. 클라이언트가 서버에 Resource를 요청합니다.
  2. 서버에서 request객체를 통해 sessionId를 확인 후 없으면 Set_Cookie를 통해 sessionId를 새로 생성합니다.
  3. 클라이언트는 request 헤더에 sessionId를 포함하여 resource를 요청하고 서버는 해당 sessionId를 통해 클라이언트의 상태 정보를 유지시키며 응답합니다.

사용자가 로그인 했을때에 예시입니다.
사용자가 로그인 정보를 서버에게 전달하면 (로그인이 성공했을시)세션을 생성하여 sessionId를 사용자에게 응답하고
후에 요청이 들어올때마다 sessionId를 비교하여 로그인을 유지시킵니다.

'WEB > Servlet,JSP' 카테고리의 다른 글

JSP의 표현언어 EL이란?  (0) 2020.06.11
컨텍스트 리스너(Context Listener)란??  (0) 2020.06.10
sendRedirect, include, forward의 차이점  (0) 2020.06.09
Servlet, JSP의 객체 범위  (0) 2020.06.09
Servlet 과 Request 객체  (0) 2020.06.08