Network
세션이란?
SambaLim
2019. 1. 13. 16:34
- 클라이언트와 웹서버 간 네트워크 연결이 지속 유지되고 있는 상태로 사용자가 브라우저를 열어 서버에 접속한 뒤 접속을 종료할 때까지를 말함
- HTTP의 연결유지를 가능하게 해줌 : 임시로 저장하여 페이지 이동 시 사용, 클라이언트가 재접속 했을 때, 클라이언트를 구분
- 클라이언트가 웹서버에 Request를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID를 부여하는데, 이 ID를 세션이라 부름
HTTP의 두 가지 특성을 알아야 세션을 이해하기 용이하다.
HTTP의 특성
- Stateless : 통신이 끝나면 상태 정보를 유지하지 않는다.
- Connectionless : 클라이언트가 서버에 요청을 하고 서버가 클라이언트에게 응답을 보내면 접속을 끊는다.
[장단점]
- 장점 : 통신을 유지하고 있으면 드는 모든 리소스 낭비를 줄인다.
- 단점 : 통신을 할때마다 계속 인증이 필요함
HTTP는 Stateless하기 때문에 로그인 상태 정보를 유지하지 않기 때문에 쿠키와 세션을 사용하지 않으면 페이지를 이동할 때마다 로그인 해야 한다.
세션의 원리
- 세션 ID를 서버에서 클라이언트가 웹사이트에 접속시 발급
- 서버에서 클라이언트로 발급해준 세선 ID를 쿠키를 사용해서 저장
- 클라이언트는 다시 접속시, 이 쿠키를 이용해서 세션 ID 값을 서버에 전달
세선의 장단점
- 장점
- 각 클라이언트에게 고유 ID를 부여 (정확한 구분)
- 세선 ID로 클라이언트를 구분하여 클라이언트의 요구에 맞는 서비스를 제공할 수 있음
- 사용했던 정보들을 서버에 저장하기 때문에 보안 면에서 쿠키보다 우수
- 단점
- 서버에 저장되는 세션때문에 서버에 처리를 요구하는 부하와 저장 공간을 필요로함