Session이란?

Yuri Lee·2021년 2월 15일
0

Session

세션이란 서버측의 컨테이너에 관리되는 정보로써 이 정보는 컨테이너에서 접속해서 종료되기까지 유지되며 접속 시간에 제한을 두어 일정 시간 응답이 없다면 정보는 더 이상 유지되지 않게 설정이 가능하다. 이것은 정보가 서버측에서 저장된다는 점에서 보안적으로 유리하다. 쿠키같이 클라이언트에 정보가 저장될 경우 데이터가 노출되어 보안적으로 심각한 문제가 발생할 수 있다. 보안이 필요한 정보를 공유하기 위해서는 서버측에서 관리될 수 있는 세션을 이용하는 것이 좋다.

  • 세션의 정보는 접속해서 종료되기까지 유지된다.
  • 접속시간에 제한을 두어 일정시간 응답이 없으면 유지를 못하게 설정이 가능하다.
  • 쿠키보다 보안적으로 유리하다.

HTTP 프로토콜

HTTP란 웹에서 텍스트,이미지, 사운드 등의 파일들을 주고받기 위한 통신 규약이다.

특성

HTTP프로토콜은 데이터를 요청하고 데이터의 결과 값을 받게 되면 바로 연결은 종료된다. 일반적으로 항상 연결된 상태에서 데이터를 주고받는다고 생각할 수도 있다. 하지만 HTTP프로토콜은 데이터 송/수신을 하자마자 바로 연결이 끊기게 된다. 이것이 HTTP프로토콜의 기본적인 특성이다.

세션의 필요

클라이언트와 서버의 연결정보를 유지하려면 연결이 끊어지지 않고 유지되어야 하므로 세션이라는 기능이 필요하다.
클라이언트가 세션에 요청할 경우 서버측에서는 클라이언트에게 클라이언트를 구분할 수 있는 식별자(Session ID)를 부여하게 된다. 여러 클라이언트가 요청하는 정보들은 이 Session ID를 통하여 클라이언트를 구분하여 정보를 저장할 수 있는 것이다.

JSP에서의 세션 관리

Servlet에서 HttpSession 객체 얻기 위하여 request.getSession() 함수를 이용한다.

HttpSession session = request.getSession();

세션 영역에 속성 값을 설정할 때 setAttribute() 함수를 이용한다.

session.setAttribute("속성명",속성값);

session.setAttribute("name","hongkildong"); 라는 코드가 있다고 가정하자. 이 코드는 세션 객체에 hongkildong이라는 값이 들어있는 name이라는 속성을 저장하는 역할을 한다. 세션은 유지 시간을 초과하지 않는 한 브라우저를 종료하지 않게 되면 name 속성은 계속해서 잃지 않고 유지할 수 있다. 현재 저장한 속성은 hongkildong이라는 String값이지만, 저장 속성 형태는 객체 타입은 모두 저장할 수 있다.


https://universecoding.tistory.com/27
https://oyeahhh.tistory.com/91

profile
Step by step goes a long way ✨

0개의 댓글