세션 Session

호떡·2022년 9월 18일
0

session

  1. 사용자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 한다.
  2. 긱 세션은 sessionid를 이용해 구분한다. (JSESSIONID)
  3. WAS의 메모리에 객체 형태로 저장
  4. 쿠키는 클라이언트에 저장되기 때문에 공유 PC의 경우 보안에 취약할 수 있다. 하지만 세션은 서버에 저장되기 때문에 쿠키에 비해 보안이 좋다.
  5. 메모리가 허용하는 용량까지 제한없이 저장 가능
  6. 사용자(로그인) 정보 및 장바구니 등에 사용한다.

session 동작 순서

  1. 클라이언트가 페이지를 요청
  2. 서버는 쿠키에 session id가 있는지 확인한다.
  3. session id가 존재하지 않으면 session id를 생성해(자동으로) 쿠키에 쓴 다음 클라이언트로 반환
  4. 생성된 session id를 이용하여 서버 내 메모리를 생성
  5. 클라이언트가 다음 요청 시 쿠키에 session id(JSESSIONID)를 포함해 전달하면 서버내에 저장된 session id와 비교하여 데이터를 조회

session 설정

  1. 브라우저 당 하나의 JSESSIONID를 할당 받음
  2. 아이디 또는 닉네임과 같이 로그인했을 경우 자주 사용되는 정보를 session에 저장하면 db에 접근할 필요가 없으므로 효율적이다.

session 사용하기

쿠키는 클래스이지만, HttpSession은 인터페이스인다. 따라서 request 안에 getSession() 메서드를 활용하여 세션을 얻어온다. setAttribute()와 getAttribute() 메서드를 활용하여 세션에 데이터를 저장한다.

0개의 댓글