HTTP SESSION
이번엔 session을 다뤄보자
먼저 앞서 다룬 쿠키와같이 session은 http프로토콜의 약점을 보완하기 위해서 존재한다.
session이란 일정 시간동안 같은 사용자(정확히 브라우저)로 부터 들어오는 일련의 요구를 하나의 상태로 보고
ㅡ그 상태를 일정하게 유지시키는 기술...
여기서 일정 시간이란 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹브라우저를 종료함으로 끝내는 시점
즉, 방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 한다.
쿠키와의 차이점은! 쿠키는 컴퓨터의 메모리에 저장! 세션은?!
세션은 방문자의 요청에 따른 정보를 방문자 메모리에 저장하는 것이 아닌 웹서버가 세션 아이디 파일을 만들어 서비스가 돌아가고 있는
서버에 저장하는 것을 말함.
쿠키와 세션은 비슷한 역할을 한다. 동작원리도 비슷하다. 결국 세션도 쿠키로 저장해서 사용하기 때문이다.
큰 차이는 위에 언급한 저장되는 위치!
정리
session
-세션은 클라와 서버간 네트워크 연결이 지속 유지되고 있는 상태를 말함
- 즉 사용자가 브라우저를 열어 서버에 접속한 뒤 접속을 종료할 때 시점까지
- HTTP 프로토콜은 비접속형이므로, 매 접속시마다 새로운 네트워크 연결이 이루어지는데, 세션이 연결 유지를 가능하게 해줌(중요)
- 클라가 서버에 requeset를 보내면, 해당 서버의 엔진이 클라에게 유일한 ID를 부여하는데, 이 ID를 세션이라고 부른다
- 세션ID는 임시로 저장하여 페이지 이동시 이용하거나, 클라가 재접속했을 때 클라를 유일하게 구분하는 수단이 된다.
원리
- 세션ID를 서버에서 클라가 다시 웹사이트에 접속시 발급해 준다.
- 서버에서 클라로 발급해준 session ID를 쿠키를 사용해서 저장
- 클라가 다시 접속시, 이 쿠키를 이용해서 세션 ID를 서버에 전달,
예> 로그인과 같이 보안상 중요한 작업은 세션을 통해 작동.