세션(Session)

carlkim·2024년 1월 23일
0

WAS

목록 보기
10/12

세션이란 무엇일까.

사용자가 웹 브라우저를 통해 웹서버에 접속한 시점으로부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지,같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고, 그 상태를 일정하게 유지하는 기술.

즉 방문자가 웹 서버에 접속해있는 상태를 하나의 단위로 보고 그것을 세션이라 부른다.

세션을 왜 쓸까.

HTTP 프로토콜의 약점인 Stateless를 해결하기 위해 사용한다.

1. Connectionless, Protocol

클라이언트가 서버에 요청했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리방식.

2. Stateless Protocol

클라이언트의 상태정보를 가지지 않는 서버처리방식이다.
클라이언트와 서버는 첫번째 통신에 데이터를 주고 받았다 해도, 두번째 통신에서 이전 데이터를 유지하지 않는다.

하지만 실제로는 데이터 유지가 필요한 경우가 많다.
정보가 유지되지 않으면 매번 페이지 이동마다 로그인을 할 수 있다.

이러한 상태 유지를 하기 위해 세션 또는 쿠키를 사용한다.

세션 동작순서

  1. 클라이언트 요청 (사용자가 웹사이트 접근)
  2. 서버는 접근 클라이언트의 Request-Header 필드인 cookie를 확인한다
    (클라이언트가 해당 세션ID를 보냈는지 확인한다)
  3. SessionID가 존재하지 않는다면 서버는 SessionId를 생성해 클라이언트에게 전송한다.
  4. 서버에서 클라이언트로 준 SessionID를 쿠키를 사용해 서버에 저장한다.
  5. 클라이언트는 재접속시, 이 쿠키를 이용하여 Sessionid 값을 서버에 전달한다.
profile
가장 나답게 문제해결.

0개의 댓글