개발/🟩 Java

🟩 [Java] session

비니_ 2025. 3. 13. 13:46
728x90

내가 본 코드👇

<input type="text" value="<%= session.getId() %>">

 

=> 해당 값을 HTML로 출력

=> value="asd4fd5138" 이런식으로 뿌려지게 된다.

 

세션(Session)이란?

  • 사용자가 웹사이트에 접속할 때 서버에서 생성되는 고유한 ID
  • 클라이언트(브라우저)와 서버 간의 연결 상태를 유지하는 데 사용됨
  • 로그인한 사용자 정보를 저장하거나, 특정 상태를 유지할 때 사용됨 (예: 로그인 정보, 장바구니 등)
  • 세션 ID는 서버가 관리하며, 일정 시간 동안 유지됨 (기본적으로 30분 정도)

 

세션 ID가 꾸려지는 방법

  1. 사용자가 웹사이트에 처음 접속하면, 서버가 랜덤한 문자열로 된 세션 ID를 생성
  2. 세션 ID는 쿠키(Cookie)에 저장되어, 브라우저가 요청할 때마다 서버로 전송됨
  3. 사용자가 로그아웃하거나 세션이 만료되면, 세션 ID는 사라지고 새로운 세션 ID가 생성됨

 

세션 ID는 변경될 수 있나요?

✔ 기본적으로 같은 세션이 유지되는 동안에는 변하지 않음
✔ 하지만 다음과 같은 경우에는 변경될 수 있음

  • 브라우저를 완전히 닫았다가 다시 열 경우
  • 로그아웃 후 다시 로그인할 경우
  • 서버에서 세션을 강제로 무효화(session.invalidate())할 경우
  • 세션이 만료되었을 경우 (기본적으로 30분 이상 활동이 없으면 만료됨)

 

세션 ID는 보안에 중요한가요?

✔ 네! 세션 ID가 노출되면 해커가 다른 사용자의 세션을 도용할 수 있음
✔ 보안을 강화하기 위해 HTTPS를 사용하고, 세션 ID를 자주 변경하는 것이 좋음
✔ 로그인 시 session.invalidate()를 호출하여 이전 세션을 무효화하고 새 세션을 발급하는 방식이 안전함

 

 세션 예제

사용자가 페이지에 접속하면, 랜덤한 세션 ID가 표시됨
✔ 페이지를 새로고침해도 같은 세션 ID 유지 (세션이 만료되지 않는 한)
✔ 브라우저를 완전히 닫고 다시 접속하면 새로운 세션 ID가 부여됨

<%
    String sessionId = session.getId(); // 현재 사용자의 세션 ID 가져오기
%>

<p>당신의 세션 ID: <%= sessionId %></p>

 

728x90