[TIL] Session Tracking

bae_mung·2021년 10월 12일
0

Study

목록 보기
6/12

HTTP : connectless, stateless (연결 비유지, 상태 비유지)
-> 그래서 상태 유지 가능하도록 보완하는 기술과 함께 사용

일정 시간 동안 동일한 사용자로부터 들어오는 일련의 요청들을 하나의 연속된 상태로 보고 유지할 수 있도록 해주는 기술에는 2가지가 있다.

  • 과자 부스러기처럼 흔적이 남는 것에서 이름을 따왔음.
  • 이름, 값 : String, Unique 관리 도메인 : 자동부여 경로
  • 유효시간 : 생략 or 음수 = 세션 쿠키, 자연수 = 해당 시간만큼 유지하는 쿠키, 0 = 쿠키 삭제
  • Cookie는 Defualt 생성자가 존재하지 않음 이름, 값이 유니크해야 하므로
  • Client Side도메인별로 쿠키를 유지한다.
  • CookieDTO 비슷하게 생각하면 좋다.
  • 단점 : String만 저장, 크키 제한, 사용자가 차단 가능, 보안에 취약

Cookie 생성

cookie = new Cookie(이름, 값);
response.addCookie(cookie);

Cookie 조회 (상태 조회)

Cookie[] cookies = response.getCookies();
배열 반복돌며 원하는 쿠키 찾기! getName(), getValues()

Cookie 삭제

cookie.setMaxAge(0);
response.addCookie(cookie);

Session : Server Side

  • 동작 원리상 SessionCookie 베이스라고 할 수있다.
  • Session 은 상태 정보를 유지할 수 있는 보관함이다.

Client 최초 접속시 Session 객체 생성 (일정 시간 유지)

HttpSession session = request.getSession(true) or getSession(false) : 없을 때 생성 여부 (false 쓸 일 거의 없음)

상태 정보 조회

session.getAttribute(key)

상태 정보 삭제

session.removeAttribute(key)

Session 삭제

session.invaliddate()

include 지시자

<%@ include file="/" %> : 정적 리소스 (html) include -> 소스코드 복붙 그 이상 그 이하도 아님

복붙이기 때문에, 변수 중복이 허용되지 않는다.
호출된 파일의 이름의 .java, .class가 생성되지 않는다.

include 액션 tag

<jsp:include page="/"></jsp:include> : 동적 리소스(jsp) include -> 해당 page 실행시킴

출력 결과가 include 시키는 page response 출력으로 포함된다.
복붙시키는 것이 아니기 때문에, 변수 중복이 허용된다.
호출된 파일의 이름의 .java, .class가 생성된다.
profile
SSAFY 6th 👨‍💻🔥

0개의 댓글