<aside> 😊 session의 개념과 장점 특징 동작순서를 정리한 페이지입니다 :)

</aside>

session

- 일정시간동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고,
	그 상태를 일정하게 유지시키는 기술
- 위에서 일정 시간은 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를
	종료하여 연결을 끝내는 시점을 말함

session 장점

- 어느정도 보안유지 : 최초 접속 때를 제외하고 SessionID만 사용
- 큰 허용 용량 : 저장 개수나 용량 제한 없음(서버 용량이 충분하다면)
- 서버에 저장되므로 클라이언트의 웹브라우저에 의존하지 않아도 됨
- 데이터를 Hash Table에 저장 : 한번에 많은 정보를 하나의 세션 객체에 저장가능
- Session_ID만 보내므로, 세션의 크기가 커도 네트워크 부하가 거의 없음 (정확한 구분)

session 특징

- 웹 서버에 웹 컨테이너의 상태를 유지하기 위한 정보를 저장
- 웹 서버의 저장되는 쿠키
- 브라우저를 닫거나, 서버에서 세션을 삭제했을때만 삭제가 되므로, 쿠키보다 비교적 보안이 좋음
- 저장 데이터에 제한이 없음
- 각 클라이언트 고유 Session ID 부여

session 동작 순서

- 클라이언트가 페이지를 요청(사용자가 웹 접근)
- 서버는 접근한 클라이언트의 Request-Header 필드인 Cookie를 확인하여
	클라이언트가 해당 session-id를 보냈는지 확인
- session-id가 존재하지 않는다면, 서버는 session-id를 생성해 클라이언트에게 돌려줌
- 서버에서 클라이언트로 돌려준 session-id를 쿠키를 사용해 서버에 저장
- 클라이언트는 재 접속시, 이 쿠키를 이용하여 session-id 값을 서버에 전달