본문 바로가기
IT/javascript

HTTP 세션(Session) 이란?

by 뉴코딩맨 2023. 5. 15.
HTTP 세션은 웹 애플리케이션에서 사용자의 상태 정보를 유지하기 위한 메커니즘입니다. HTTP 프로토콜은 기본적으로 상태를 유지하지 않는 Stateless 프로토콜이므로, 웹 서버는 각 요청을 독립적으로 처리합니다. 그러나 많은 웹 애플리케이션에서는 사용자의 로그인 상태, 장바구니 내역 등과 같은 정보를 유지해야 합니다. 이를 위해 세션을 사용하여 상태 정보를 보관하고 관리합니다.

 

 

HTTP 세션 동작원리

HTTP 세션은 다음과 같은 원리로 동작합니다:
 
  1. 클라이언트가 웹 서버에 접속하면 세션 ID가 클라이언트에게 할당됩니다. 세션 ID는 일반적으로 쿠키를 사용하여 클라이언트에 저장됩니다.
  2. 클라이언트가 서버에 요청을 보낼 때마다, 클라이언트의 세션 ID가 요청과 함께 서버로 전송됩니다. 이를 통해 서버는 클라이언트를 식별하고 해당 세션에 연결된 상태 정보를 찾을 수 있습니다.
  3. 서버는 세션 ID를 사용하여 세션 저장소에 저장된 상태 정보에 접근합니다. 세션 저장소는 일반적으로 서버의 메모리나 데이터베이스에 위치할 수 있습니다.
  4. 서버는 세션에 필요한 작업을 수행한 후, 응답을 클라이언트에게 반환합니다. 응답에는 변경된 세션 정보가 포함될 수 있습니다.
 
 

HTTP 세션 관리작업

주요 세션 관리 작업은 다음과 같습니다:

 

  • 세션 생성: 클라이언트가 서버에 처음 접속할 때, 새로운 세션을 생성하고 세션 ID를 클라이언트에게 전달합니다.
  • 세션 검증: 클라이언트의 요청에 포함된 세션 ID를 검증하여 유효한 세션인지 확인합니다. 유효하지 않은 세션은 거부될 수 있습니다.
  • 세션 저장: 세션에 연결된 상태 정보를 저장하고 관리합니다. 이 정보는 필요에 따라 세션 저장소에 저장됩니다.
  • 세션 만료: 세션은 일정 기간 동안 유지될 수 있으며, 만료 시간이 지나면 자동으로 삭제됩니다. 이를 통해 서버 리소스를 효율적으로 관리할 수 있습니다.
 
HTTP 세션은 웹 애플리케이션에서 사용자 식별, 인증, 권한 부여, 상태 관리 등 다양한 작업에 필요합니다.
 

댓글