길민호(ethan.mino)
코딩수첩
길민호(ethan.mino)
전체 방문자
오늘
어제
  • 분류 전체보기 (215)
    • Computer Science (0)
    • Web (6)
      • CSS (0)
      • HTML (0)
    • Node.js (0)
    • Javascript (2)
    • Java (46)
      • Spring (27)
      • Jsp (0)
    • C\C++ (2)
    • Programming (0)
    • AI (0)
    • Database (7)
    • Git (5)
    • Algorithm (119)
      • Stack (0)
      • Queue (0)
      • Linked List (0)
      • Sort (0)
      • Simulation (27)
      • Recursion (0)
      • Backtracking (4)
      • Two Pointer (3)
      • Dynamic Programming (19)
      • Greedy (10)
      • Graph (3)
      • Dijkstra (1)
      • BFS\DFS (8)
      • Floyd (1)
      • MST (4)
      • Tree (4)
      • Binary Search (8)
      • Binary Search Tree (4)
    • IntelliJ (4)
    • Vscode (0)
    • Operating System (0)
    • 후기 (3)
    • 성장일지 (13)
    • 스터디 (7)
    • 설치 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅡ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
길민호(ethan.mino)

코딩수첩

Session이란?
Web

Session이란?

2020. 7. 17. 07:20

1. Session이란?

  • 클라이언트 별로 서버에 저장되는 정보
  • 이용방법
    • 웹 클라이언트가 서버측에 요청을 보내면, 서버는 클라이언트를 식별하는 session id를 생성.
    • 서버는 session id를 이용해서 key와 value를 이용한 저장소인 HttpSession을 생성.
    • 서버는 session id를 저장하고 있는 쿠키를 생성하여 클라이언트에 전송.
    • 클라이언트는 서버측에 요청을 보낼 때, session id를 가지고 있는 쿠키를 전송.
    • 서버는 쿠키에 있는 session id를 이용해서 그 전 요청에서 생성한 HttpSession을 찾고 사용.

2. 세션 생성 및 얻기

HttpSession session = request.getSession(); (= request.getSession(true);)
  • request의 getSession() 메서드는 서버에 생성된 세션이 있다면 세션을 반환하고, 없다면 새롭게 생성하여 반환한다. 새롭게 생성된 세션인지는 HttpSession이 가지고 있는 isNew() 메서드를 통해 알 수 있다.
HttpSession session = request.getSession(false);
  • request의 getSession() 메서드에 파라미터로 false를 전달하면, 이미 생성된 세션이 있는 경우 세션을 반환하고, 없으면 null을 반환한다.

3. 세션에 값 저장.

  • setAttribute(String name, Object value)
    • name과 value의 쌍으로 객체 Object를 저장하는 메소드
    • 세션이 유지되는 동안 저장할 자료를 저장
  • getAttribute(String name) 메서드
    • 세션에 저장된 자료는 다시 getAttribute(String name) 메서드를 이용해 조회.
    • 반환 값은 Object 타입이므로, 저장된 객체로 형변환 필요

4. 세션의 값 삭제

  • removeAttribute(String name) 메서드
    • name에 해당하는 세션 정보를 삭제한다.
  • invalidate() 메서드
    • 모든 세션 정보를 삭제한다.

5. javax.servlet.HttpSession

  • 세션은 클라이언트가 서버에 접속하는 순간 생성
  • 특별히 지정하지 않으면 세션의 유지 시간의 기본 값이 30분으로 설정된다.
  • 세션의 유지 시간이란 서버에 접속한 후 서버에 요청을 하지 않는 최대 시간이다.
  • 30분 이상 서버에 전혀 반응을 보이지 않으면 세션이 자동으로 끊어진다.
  • 이 세션 유지 시간은 web.xml 파일에서 설정 가능하다.
<session-config>
    <session-timeout>30</session-timeout>
</session-config>

 

참조 URL

  • https://www.edwith.org/boostcourse-web/lecture/16801/

'Web' 카테고리의 다른 글

쿠키란?  (0) 2020.07.17
상태정보란?  (0) 2020.07.17
WAS란?  (0) 2020.07.06
Web API란?  (0) 2020.07.01
REST API란?  (0) 2020.07.01
    'Web' 카테고리의 다른 글
    • 쿠키란?
    • 상태정보란?
    • WAS란?
    • Web API란?
    길민호(ethan.mino)
    길민호(ethan.mino)
    💻 호기심 많은 서버 개발자 길민호입니다.

    티스토리툴바