[React] Cookie, Session

Jinga·2023년 7월 8일
0

React

목록 보기
21/28
post-thumbnail

Cookie

개념

쿠키는 서버가 사용자의 웹 브라우저에 저장하는 작은 텍스트 파일이다.
쿠키는 이름, 값, 만료일, 경로, 도메인 등의 정보를 포함하며, 이 정보는 사용자가 웹 사이트를 다시 방문할 때마다 서버에 전송된다.
쿠키를 사용하면 사용자의 선호 설정, 로그인 정보 등을 기억하거나 장바구니와 같은 상태 정보를 저장할 수 있다.
쿠키는 사용자가 이전에 웹사이트에서 입력했던 정보(아이디, 언어 설정 등)를 기억하게 해 주어 사용자 경험을 향상시키는데 주로 사용된다.

장점

  1. 서버가 아닌 클라이언트에서 데이터를 저장하기 때문에 서버의 부하를 줄일 수 있다.
  2. 사용자 별로 개인화된 정보를 저장하고 이를 기반으로 사용자 경험을 개선할 수 있다.

단점

보안성이 낮으며, 클라이언트 측에서 쿠키를 삭제하거나 변경할 수 있기 때문에 민감한 데이터를 저장하기에 적합하지 않다.
사용자의 브라우저에 저장공간이 한정적이기 대문에 큰 데이터를 저장하기 어렵다.

Session

개념

웹에서 세션은 클라이언트와 서버 간 네트워크 연결이 지속되는 동안 사용자의 상태를 유지하기 위한 방법이다.
즉, 사용자가 웹 사이트에 로그인할 때 세션을 시작하고, 로그아웃하거나 일정 시간 동안 활동이 없을 때 세션을 종료한다.

웹은 기본적으로 상태를 유지하지 않는(stateless)통신 방식이기 때문에, 세션과 같은 기술이 필요하다.
세션을 통해 서버는 사용자가 페이지를 이동하더라도 그 사용자의 상태를 유지할 수 있다.

세션 정보는 서버에 저장되며, 각 세션은 고유한 세션ID를 가지고 있다. 사용자가 로그인하면 서버는 세션을 생성하고, 그 세션ID를 사용자의 브라우저에 쿠키를 통해 전달한다.
사용자의 브라우저는 이후 요청마다 이 세션 ID를 서버에 보내, 사용자를 식별한다.

장점

  1. 상태 유지 : 사용자의 정보와 설정, 로그인 상태 등을 유지할 수 있다. 이는 웹 서비스에서 중요한 기능으로, 사용자의 편의를 크게 높인다.
  2. 보안 : 세션 정보는 서버에 저장되므로, 클라이언트에서 직접적으로 접근하거나 수정하는 것이 어렵습니다.
  3. 대용량 데이터 : 서버에 저장되므로 대용량의 데이터를 저장할 수 있다.

단점

  1. 서버 부하 : 세션 정보는 서버에 저장되므로, 많은 사용자가 접속하면 서버의 메모미를 많이 차지하게 된다. 이로 인해 성능이 저할될 수 있으며, 스케일링이 어려울 수 있다.
  2. 클라이언트 이동 : 사용자가 브라우저를 변경하거나 다른 기기로 이동하면 세션을 유지할 수 없다. 세션은 서버와 특정 클라이언트 사이의 연결을 유지하기 때문이다.
  3. 세션 하이재킹 : 세션ID가 공격자에게 노출되면, 공격자가 세션ID를 이용해 사용자를 가장할 수 있다. 이를 세션 하이재킹이라고 한다. 이를 방지하기 위해 HTTPS등의 기술을 사용해 세션ID를 안전하게 전송해야 한다.

Cookie와 Session 비교

공통점

Cookie와 Session은 웹 사이트가 사용자의 브라우저를 통해 사용자의 상태를 기억하고 추적하는 데 사용되는 기술이다.
이들은 HTTPstateless한 특성을 보완하기 위해 사용되며, 웹 사이트와 사용자의 상호작용을 개선하는데 도움을 준다.

주요 차이점

CookieSession
저장 위치클라이언트(브라우저)서버
저장 형식텍스트 형식객체 형태
생명주기직접 삭제 전까지 유지서버와의 연결 종료까지

설명도 이상하고 코드도 이상한 글임에도 읽어주셔서 감사합니다. : )

profile
다크모드가 보기 좋아요

0개의 댓글

관련 채용 정보