안녕하세요.
오늘은 세션(session)에 대해서 알아보겠습니다.
세션(session)이란 클라이언트와 웹서버간의 네트워크 통신이 이루어질때 클라이언트가 누구인지 식별할때 사용합니다. 즉 클라이언트가 서버로 요청을 하면 서버는 이 클라이언트의 세션 아이디를 판단하여 이 사용자가 누구인지 판단합니다. 간단하게 말하면 'A'라는 사용자가 로그인을 하면 서버에서 세션(session)을 생성하고 'A'라는 사용자에게 세션아이디를 다시 전달합나디. 'A'라는 사용자의 브러우저의 메모리에 저장이되며 추 후 서버로 요청을 할경우 브라우저에 저장된 세션 아이디를 가지고 내가 'A'라는 사용자라는 것을 증명합니다.
● 세션이 계속 유지되면 클라이언트를 계속 구분 할 수 있다.
● 보안적인 면에서 쿠키보다 우수하다.
● 세션의 만료 시간을 두어 클라이언트가 서버에서 설정한 시간만큼 미동작 시 클라이언트의 세션을 만료 시킨다.
♣
1. 사용자 정보를 서버에 두어서 쿠키 보다 보안상 좋다.
2. 각 클라이언트에게 고유 ID를 부여한다.
♣
1. 사용자가 너무 많을경우 서버의 메모리를 많이 차지하여서 서버의 성능을 저하 시킬수 있다.
㉮ 클라이언트(사용자)가 서버에 접속 시 세션 ID를 발급합니다.
㉯ 서버에서 받은 세션 ID를 클라이언트(사용자)브라우저의 쿠키에 저장하여 가지고 있습니다.
㉰ 클라이언트(사용자)가 무엇인가 행위를 하여 서버에 요청을할 경우 세션 ID를 같이 서버에 전달 합니다.
㉱ 서버는 세션 ID를 판변하여 클라이언트(사용자)가 누구인지 판별합니다.
● 간단하게 아래와 같이 세션(session) 선언 및 메소드 몇개를 적어 놨습니다. 도움이 되었으면 좋겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public void sessionTest(HttpServletRequest req) {
// 세션 선언
HttpSession session = req.getSession();
// 사용자 session 저장
session.setAttribute("userId", "aboc11");
// 사용장 session 가져오기
String userId = (String)session.getAttribute("userId");
// 유저의 아이디는 위에 셋팅한 'aboc11'를 표츌.
System.out.println("유저 아이디 :: " + userId);
// session의 고유 Id를 반환한다.
// 현재 생성된 session를 무효화 시킨다.
session.invalidate();
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
대단히 장황하고 이런 글은 아니지만 처음 세션를 접하는 분들에게는 조금이라도 개념을 잡고 도움이 되었으면 하는 마음으로 글을 썼습니다.
글을 읽으시는 분들에게 모두 도움이 되었으면 좋겠습니다.
감사합니다.
[Java] 자바 파일 삭제(delete) 방법 및 설명(간단) (2) | 2020.02.18 |
---|---|
[Java] 자바 폴더(디렉토리) 생성방법 및 설명(간단) (0) | 2020.02.18 |
[ Java ] 자바 형변환(문자, 숫자) (0) | 2019.09.30 |
[ JAVA ] 자바 파일업로드 유틸 예제(ajax 파일 업로드) (0) | 2019.09.27 |
[ Java ]자바 for문(반복문) 예제 (0) | 2018.10.24 |