세션(Session)은 웹사이트에서 사용자 상태를 유지하기 위한 기술 중 하나이다.
쿠키와 달리 세션은 웹 애플리케이션 서버 측에서 사용자 정보를 저장하며, 사용자가 로그인하거나 다른 작업을 수행할 때 생성된다. 이를 통해 사용자는 웹사이트에서 다양한 작업을 수행하며 상태를 유지할 수 있다.
세션은 일반적으로 SessionID라는 고유한 값으로 식별되고 SessionID는 쿠키, URL 임베딩, 헤더 등을 통해 전송된다.
세션을 이용한 상태 유지는 쿠키를 이용한 상태 유지와 달리 보안적인 측면에서 더 안전하다.
쿠키는 브라우저에 저장되기 때문에 사용자가 브라우저에서 쿠키를 삭제하거나 다른 브라우저에서 접속하면 이전의 상태를 복원할 수 없지만, 세션은 서버 측에서 관리되기 때문에 사용자가 로그아웃을 하거나 일정 시간이 지나면 세션 정보를 삭제함으로써 보안적인 위험을 최소화할 수 있다.
하지만 세션은 서버 측에서 관리되기 때문에 더 많은 서버 자원을 요구한다는 단점이 있다.
따라서 대규모 웹 애플리케이션에서는 세션의 사용이 불가피하겠지만, 작은 규모의 웹 애플리케이션이라면 쿠키를 사용하는 것이 더 효율적일 수 있다.
작동 방식
세션의 작동 방식은 다음과 같다.
- 사용자가 웹사이트에 접속하여 로그인하면 서버에서는 해당 사용자를 식별할 수 있는 고유한 Session ID를 생성한다.
- Session ID는 일반적으로 쿠키를 통해 사용자의 브라우저에 전송된다.
- 사용자가 다음 요청을 보낼 때, 브라우저는 쿠키에 저장된 세션 ID를 서버로 전송한다.
- 서버는 Session ID를 통해 해당 사용자의 정보를 참조하고 요청에 대한 응답을 생성한다.
- 사용자가 로그아웃을 하거나 일정 시간이 지나면 서버에서는 해당 세션 정보를 삭제한다.
'개발 일지 > CS' 카테고리의 다른 글
[Cloud] Deploy (0) | 2023.03.30 |
---|---|
[Cloud] Cloud Computing (0) | 2023.03.29 |
[Web] Cookie (0) | 2023.03.14 |
[Web] HTTPS (0) | 2023.03.14 |
[CS] Hamcrest (0) | 2023.03.06 |