2024.06.20.목.TIL 내일배움캠프 46일차 <Cookie&Session>

김기남·2024년 6월 20일
0

안녕하세요, 오늘은 스탠다드 이론반 수업에서 다뤘던 Cookie 와 Session 에 대해 정리해보았습니다.

Spring Filter -> 굉장히 잘 사용한 경우가(추상화 된 기술) Spring Security

쿠키(Cookie)

웹 브라우저에서 사용자의 컴퓨터에 저장되는 정보,
이 정보는 서버에서 사용자의 브라우저로 전송되고,
브라우저는 해당 정보를 저장해두었다가 이후에 같은 서버에 요청을 보낼 때마다 함께 전송한다.
쿠키는 사용자의 상태나 세션을 유지하거나 사용자 경험을 개선하기 위해 사용된다.

사용자 로그인 세션 관리, 광고 트래킹 등에 주로 사용된다.
Cookie 는 HTTP 요청이 발생할 때 마다 항상 서버에 전송된다.
보안에 취약하다.

쿠키를 사용하지 않으면?
클라이언트와 서버가 요청과 응답을 주고받으면 연결이 끊어진다.
클라이언트가 재요청시 서버는 이전 요청을 기억하지 못한다.

세션(Session)

쿠키를 사용한 방식은 여러가지 보안 문제가 있다.
결국 보안 문제를 해결하려면 중요한 정보는 모두 서버에서 저장해야한다.
클라이언트와 서버는 예측이 불가능한 임의의 값으로 연결해야 한다.
서버에서 중요한 정보를 보관하며 로그인 연결을 유지하는 방법을 Session 이라고 한다.
쿠키는 중요한 정보를 클라이언트측에서 보관하고 있는것이다.

로그인에 성공하면 서버에서 임의로 만든 세션 ID 를 생성한다.
생성된 세션 ID와 조회한 유저 인스턴스를 서버의 세션 저장소에 저장한다.
예상 불가능한 세션 ID를 사용하여 쿠키값을 변조해도 문제가 없다.
세션 ID가 탈취되어도 중요한 정보는 들어있지 않다.
세션 ID가 탈취되어도 시간이 지나면 세션이 만료되도록 설정하면된다.
세션은 특별한것이 아니라 단지 쿠키를 사용하여 클라이언트가 아닌 서버에서 데이터를 저장해두는 방법이다.

쿠키 (Cookie)

  • 정의: 웹 브라우저(Client 측)에 저장되는 데이터
  • 용도: 사용자의 방문 기록, 로그인 상태 유지, 개인 맞춤 설정 등을 저장. (HTTP 특성 극복), 광고 정보(광고회사)
  • 특징: 클라이언트 측에 저장되며, 서버에 요청을 보낼 때마다 포함되어 전송됨.
  • 수명: 만료 날짜를 설정할 수 있음,
    세션 쿠키(브라우저 종료 시 삭제)와 영속 쿠키(지정된 기간 동안 유지)로 구분됨.

세션 (Session)

  • 정의: 사용자와 서버 간의 상태를 유지하기 위한 방법.
  • 용도: 로그인 정보, 사용자 활동 등을 서버 측에서 관리.
  • 특징: 서버 측에서 저장되며, 세션 ID가 쿠키에 저장되어 클라이언트와 연결됨.
  • 수명: 브라우저를 닫거나 일정 시간이 지나면 만료됨.
profile
새로운 시작~!

0개의 댓글