게으른 개발자의 끄적거림

HttpSesseion 기초 개념

끄적잉 2023. 12. 11. 21:47
728x90

`HttpSession`은 웹 애플리케이션에서 사용자의 상태를 유지하고 세션 관리를 위한 Java 언어의 인터페이스입니다. HTTP 프로토콜은 기본적으로 상태를 유지하지 않는 stateless한 프로토콜이기 때문에, 사용자의 상태를 유지하기 위해서는 어떤 방법이 필요합니다. `HttpSession`은 이러한 상태를 유지하기 위한 매커니즘 중 하나로 사용됩니다.

`HttpSession`은 다음과 같은 주요 특징을 가지고 있습니다:

 


1. **상태 유지(State Maintenance):** `HttpSession`을 사용하면 웹 애플리케이션에서 사용자의 상태를 유지할 수 있습니다. 각 세션은 고유한 식별자로 구분되며, 세션을 통해 데이터를 저장하고 검색할 수 있습니다.


2. **쿠키 또는 URL 재작성을 통한 세션 식별:** 세션 식별자는 주로 쿠키를 통해 전송되며, 필요한 경우 URL 재작성을 통해서도 세션 식별이 가능합니다.

3. **세션 속성 저장:** `HttpSession`을 사용하면 클라이언트와 서버 간의 상태를 저장할 수 있습니다. 이를 통해 로그인 정보, 사용자 설정 등을 유지할 수 있습니다.

4. **세션 만료 및 타임아웃:** 세션은 일정 시간 동안 유지되다가 만료됩니다. 만료 시간은 설정 가능하며, 클라이언트가 일정 시간 동안 요청을 하지 않으면 세션이 만료될 수 있습니다.

 


`HttpSession`을 사용하기 위해서는 보통 다음과 같은 절차를 따릅니다:

1. **세션 생성:** 클라이언트가 서버에 최초 요청을 하면, 서버는 새로운 세션을 생성하고 그 세션에 대한 고유한 식별자를 생성합니다.

2. **세션에 데이터 저장:** 서버는 생성된 세션에 필요한 데이터를 저장합니다. 이 데이터는 세션을 통해 클라이언트에게 전달되거나, 서버에서 유지됩니다.

3. **세션 식별자 전송:** 세션 식별자는 쿠키 또는 URL 재작성을 통해 클라이언트에 전송됩니다.

4. **세션에서 데이터 읽기:** 이후 클라이언트가 요청을 할 때마다, 서버는 세션 식별자를 사용하여 해당 세션에서 데이터를 읽어옵니다.

5. **세션 만료 및 정리:** 세션은 일정 시간 동안 유지되다가 만료됩니다. 만료된 세션은 정리되고, 관련된 자원들이 해제됩니다.

 

 

 


자바에서 `HttpSession`은 `javax.servlet.http` 패키지에 속해 있으며, 주로 서블릿 또는 JSP(JavaServer Pages)와 함께 사용됩니다. 세션은 주로 웹 애플리케이션에서 로그인 상태, 사용자 환경 설정, 장바구니 정보 등을 유지하는 데 활용됩니다.

728x90