아 이게 뭐임!

세션이 뭐임!!

마로가마따 2021. 7. 23. 08:04

Contents

-       세션이 뭐임!

-       세션 왜 씀!

 

세션이 뭐임!!!

세션(Session)이란 사용자가 최초에 서버에 요청한 시점부터 종료할때까지 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술입니다. 쿠키와는 다르게 방문자의 요청에 따른 정보를 방문자 메모리에 저장하는 것이 아닌 웹 서버가 세션 아이디 파일을 만들어 서비스가 돌아가고 있는 서버에 저장합니다. 서버에 저장되기 때문에 사용자 정보가 노출되지 않습니다. 

(방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 칭한다고도 합니다...)

 

 

세션의 원리

- 세션 ID를 서버에서 클라이언트가 자시 웹사이트에 접속시 발급해준다.

- 서버에서 클라이언트로 발급해준 세션 ID를 쿠키를 사용해서 저장합니다.

- 클라이언트는 다시 접속시, 이 쿠리를 이용해서 세션 ID값을 전달합니다.

 

 

 

HTTP 세션 동작 순서

 

- 사용자가 서버로 요청합니다.

 

- 서버는 사용자의 request-header field인 쿠키를 확인해 사용자가 해당 세션id를 보내왔는지 확인한다.

 

- 만약 사용자로부터 발송된 세션id가 없다면, 서버는 세션id를 생성해 사용자에게 response-header field인 set cookie 값으로 세션id를 발행합니다.

 

- 사용자의 로컬에 세션 ID를 쿠키의 형태로 저장합니다.

 

- 세션ID를 이용해 다음 요청부터는 서버에서 사용자를 식별합니다.

 

 

 

세션 왜 씀?!!

 

인터넷에서 HTTP 규약을 사용하여 통신을 하는데 HTTP의 특징인 Connectionless와 Stateless 인한 한계점을 해결하기 위해서 나왔습니다.

 

사용자가 서버로 웹 페이지의 데이터를 요청할 때 서버는  사용자의 요청을 수행하는 순간 사용자의 정보를 저장하지 않은 상태로 접속이 끊어지기 때문에 다음 요청시에 서버는  사용자를 기억하지를 못합니다. 예를 들자면 세션이 없다면 사용자가 네이버 메인페이지에 로그인하여 들어간다고 했을때사용자가 메일함을 연 순간 서버는 사용자를 기억하지 못해 다시 사용자인증을 해달라고 해야합니다.

 

 

이와 같은 사용자와 서버 사이에 필요한 정보를 유지하기 위해 사용하는 기술이 세션입니다.

 

 

 

세션의 특징

  • 세션의 정보는 접속해서 종료되기까지만 유지됩니다.
  • 접속시간에 제한을 두어 일정시간 응답이 없으면 유지를 못하게 설정이 가능합니다.
  • 사용해봤던 정보들을 서버에 저장하기 때문에 보안적으로 쿠키보다 유리합니다.
  • 저장되는 데이터의 크기에 제한이 없습니다.
  • 각 클라이언트에게 고유 ID를 부여합니다.
  • 세션 ID로 클라이언트를 구분해서 클라이언트의 요구에 맞는 서비스를 제공할 수 있습니다.

 

 

 

세션의 단점(?)

- 서버에 저장되기 때문에 서버에 저장 공간을 필요로 한다.

 

 

 

 

 

반응형

'아 이게 뭐임!' 카테고리의 다른 글

DTO랑 VO가 뭐임!! (코드 포함)  (0) 2021.07.25
Cache(캐시)가 뭐임!!!  (0) 2021.07.24
쿠키가 뭐임!!  (0) 2021.07.22
[객체지향] 의존성이 뭐임!!  (0) 2021.07.21
Globals Are Evil이 뭐임!!  (0) 2021.07.16