<TIL> 44. 쿠키와 세션

YUJIN LEE·2023년 3월 4일
0

개발log

목록 보기
39/149
post-thumbnail

사용자를 구별하지 못하는 HTTP

  • HTTP는 상태를 저장하지 않는다.(stateless)

쿠키와 세션

쿠키와 세션은 HTTP에 상태 정보를 유지(stateful)하기 위해 사용.
쿠키와 세션을 통해 서버는 클라이언트 별로 인증 및 인가 가능

  1. 쿠키
  • 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일

구성요소

  • Name(이름) : 쿠키를 구별하는 데 사용되는 키(중복 X)
  • Value(값): 쿠키의 값
  • Domain(도메인): 쿠키가 저장된 도메인
  • Path(경로): 쿠키가 사용되는 경로
  • Expires(만료기한): 쿠키의 만료기한(만료기한 지나면 삭제)
  1. 세션
  • 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용
  • 서버에서 클라이언트 별로 유일무이한 '세션ID'를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장
  • 서버에서 생성한 세션ID는 클라이언트의 쿠키값(세션쿠키)으로 저장되어 클라이언트 식별에 사용

쿠키 vs 세션

쿠키

  • 클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일
  • 저장위치: 클라이언트(웹 브라우저)
  • 사용 ex) 사이트 팝업의 '오늘 다시보지 않기' 정보 저장
  • 만료: 쿠키 저장 시 만료일시 설정 가능(브라우저 종료시도 유지 가능)
  • 용량 제한: 브라우저 별로 다름
  • 보안: 취약(클라이언트에서 쿠키 정보를 쉽게 변경, 삭제 및 가로채기 당할 수 있다)

세션

  • 서버에서 일정기간 동안 클라이언트 상태를 유지하기 위해 사용
  • 저장위치: 웹서버
  • 사용 ex) 로그인 정보 저장
  • 만료: 다음 조건 중 하나가 만족 될 경우 만료
    1. 브라우저 종료시까지
    1. 클라이언트 로그아웃 시까지
    2. 서버에 설정한 유지기간까지 해당 클라이언트의 재요청이 없는 경우
  • 용량 제한: 개수 제한 없음(단, 세션 저장소 크기 이상 저장x)
  • 보안: 비교적 안전(서버에 저장되기 때문에 상대적 안전)
profile
인정받는 개발자가 되고싶습니다.

0개의 댓글