본문으로 건너뛰기

Session

HTTP 프로토콜의 "통신이 끝나면 상태 정보를 유지하지 않는 특징(Stateless)" 때문에,브라우저에서 발생한 정보들이 페이지를 이동할 때 마다 초기화된다. 이러한 정보를 저장하기 위해 사용하는 것이 쿠키, 세션 그리고 웹 스토리지이다.

🧑🏻‍💻 Session


브라우저가 서버에 연결되어 있는 동안만 유지되는 데이터 집합이다. (세션 스토리지와 다르다.)

Request 메시지

✏️ 라이프 사이클

  • cookie는 만료 시간을 설정하면 브라우저가 종료되어도 만료 시간이 남아 있으면 삭제되지 않지만,
  • session은 만료 시간을 설정해도 브라우저가 종료되면 삭제된다.

✏️ 데이터 저장 위치외 보안

  • cookie는 방문자의 정보를 방문자의 컴퓨터 메모리에 저장하지만,

  • session은 방문자의 정보를 서버가 만든 Session ID와 함께 서버에 저장한다. 이 때문에 session의 보안이 더 좋다.

    Response Header의 Set-Cookie를 통해 클라이언트의 Session ID값을 부여한다. 클라이언트와 서버간에는 Session ID만 주고받는 방식을 통해, 쿠키와 달리 로그인 정보에 대한 보안을 업그레이드 할 수 있다.

✏️ 속도와 트래픽 비용

  • session은 정보가 서버에 있기 때문에 처리가 요구되어서 cookie보다 비교적 속도가 느린 편이다.
  • 또한 사용자가 많아질수록 서버 메모리를 많이 차지하게 된다.
  • React의 Context는 쿠키, 세션 또는 웹 저장소(로컬 스토리지 또는 세션 스토리지)와 직접적으로 관련이 없는 개념이다. React의 Context는 React 애플리케이션 내에서 컴포넌트 간에 데이터를 전달하고 공유하기 위한 메커니즘이다.

  • 즉, Context를 사용하여 데이터를 관리하고, 개인 기능 제공을 위해 해당 상태 데이터를 사용자 브라우저의 쿠키, 세션 또는 로컬 스토리지에 저장할 수 있다.


    참고 자료

  • 브라우저 저장소