Session이란?

사용자가 Web browser를 통해 접속한 시점으로부터 종료하여 연결을 끝내는 시점까지 같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고, 그 상태를 일정하게 유지하는 기술이다. Client 별로 Server에 저장되는 상태 정보. 사용자의 CP에 저장되는 Cookie와 비교된다.

 

Session의 특징

  • 각 Client에게 고유한 ID를 부여한다.
  • Session ID로 Client를 구분하여 요구에 맞는 Service 제공이 가능하다.
  • 사용했던 정보를 Server에 저장하기 때문에 Cookie보다 보안이 우수하다.
  • Server 부하가 발생할 수 있다.
  • Http Protocol은 비접속형이기 때문에 접속마다 network를 새로 연결하나, session이 연결을 유지하게 한다.
  • WAS의 memory에 Object 형태로 저장된다.
  • Memory가 허용하는 용량까지 무제한으로 저장이 가능하다.

 

Session의 동작 순서

  1. Client가 Page를 요청한다.
  2. 접근한 Client의 Cookie를 확인하여 해당 session-id를 확인한다.
  3. 존재하지 않으면 Session-id를 생성하여 Client에게 반환한다.
  4. Server에서 Client로 반환한 session-id를 cookie로 server에 저장한다.
  5. Client 재 접속시, 해당 cookie를 이용하여 session-id 값을 server에 전달한다(3번 실행).

 

 

Session의 기능

Session의 주요 method

Method Description
String getId() Session의 ID 반환
long getLastAccessedTime() Session 내에서 최근 요청 받은 시간 반환
boolean isNew() 새로 생성된 session인지를 반환. request.getSession() 호출 후 사용.
void invalidate() session 객체를 저장된 객체와 함께 제거.
void setMaxinactiveInterval(int interval) 지정된 시간(초) 후에 session 종료(예약 종료.)
int getMaxInactiveInterval() 예약된 session 종료 시간 반환.

 

속성 관련 method

// 생성
HttpSession session = request.getSession();
HttpSession session = request.getSession(false);

// 값 저장
session.setAttribute(String name, Object value);

// 값 얻기
Object obj = session.getAttribute(String name);

// 값 제거
session.removeAttribute(String name);// 특정 이름 속성 제거
session.setMaxInactiveInterval(30 * 60) // 예약 종료(30분 후)

// 해당 page에서 session 미사용
<%@ page session = "false" %>

 

 

Javascript에서 사용하기

 

[JavaScript] Javascript에서 session 사용

Session에 대해, Java에서 사용하기 Javascript의 session, sessionStorage sessionStorage 지원 method Method Description setItem(key, value) Session에 value(data)를 key 이름으로 저장 getItem(key) Sessio..

seheec.tistory.com

 

 

'Language > Java' 카테고리의 다른 글

[Java] 제네릭(Generics)이란?  (0) 2022.06.13
[Java] 람다식 문법(Lambda Expressions)이란?  (0) 2022.02.21
[JDBC] JDBC란?  (0) 2022.02.05
복사했습니다!