개발/🟩 Java
🟩 [Java] session
비니_
2025. 3. 13. 13:46
728x90
내가 본 코드👇
<input type="text" value="<%= session.getId() %>">
=> 해당 값을 HTML로 출력
=> value="asd4fd5138" 이런식으로 뿌려지게 된다.
✅ 세션(Session)이란?
- 사용자가 웹사이트에 접속할 때 서버에서 생성되는 고유한 ID
- 클라이언트(브라우저)와 서버 간의 연결 상태를 유지하는 데 사용됨
- 로그인한 사용자 정보를 저장하거나, 특정 상태를 유지할 때 사용됨 (예: 로그인 정보, 장바구니 등)
- 세션 ID는 서버가 관리하며, 일정 시간 동안 유지됨 (기본적으로 30분 정도)
✅ 세션 ID가 꾸려지는 방법
- 사용자가 웹사이트에 처음 접속하면, 서버가 랜덤한 문자열로 된 세션 ID를 생성
- 세션 ID는 쿠키(Cookie)에 저장되어, 브라우저가 요청할 때마다 서버로 전송됨
- 사용자가 로그아웃하거나 세션이 만료되면, 세션 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