로그인시 쿠키, 세션 참고

2022. 2. 15. 10:15Trouble shooting/backend

 

 

 

  • 쿠키(Cookie)
    • 쿠키란?
      • 클라이언트인 웹 브라우저 로컬에 저장하는 키와 값이 들어있는 작은 데이터 파일
    • 만료시점
      • 사용자 인증이 유효한 시간을 명시 가능, 브라우저가 종료되도 유효시간이 남아있으면 인증이 유지 됨
    • 쿠키 구성 요소
      • 이름 : 각각의 쿠키에 대한 식별자
      • 값 : 쿠키의 이름과 관련된 값
      • 유효시간 : 쿠키의 유지시간
      • 도메인 : 쿠키를 전송할 도메인
      • 경로 : 쿠키를 전송할 도메인
    • 용량제한
      • 한 도메인 당 20개, 모든 도메인에 대해 300개 제한, 하나의 쿠키는 4KB
      • 클라이언트도 모르게 접속되는 사이트에 의해서 설정 될 수 있기 때문에 쿠키로 인한 문제가 발생하는 것을 막고자 제한을 걸어놓았다.
      • 하나의 도메인에서 쿠키가 20개를 초과하면 가장 적게 사용된 쿠키부터 삭제
    • 쿠키 동작 방식
      • 클라이언트가 페이지 요청
      • 서버에서 쿠키 생성
      • HTTP 헤더에 쿠키를 포함시켜 응답
      • 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라언트에서 보관하고 있음
      • 같은 요청을 할 경우 HTTP 헤더에 쿠키를 함께 보냄
      • 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트 하여 변경된 쿠키를 HTTP 헤더에 포함시켜 응답
    • 예시
      • 방문 사이트에서 로그인 시, 아이디와 비밀번호를 저장하시겠습니까?
      • 쇼핑몰의 장바구니 (비 로그인시 장바구니에 담았던 품목을 로그인 시 그대로 유지하기 위해서 사용)
  • 세션
    • 세션이란?
      • 일정 시간 동안 같은 사용자, 브라우저로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술
      • 쿠키를 기반, 차이점은 사용자 정보를 브라우저에 저장하지 않고 서버에서 관리
    • 만료시점
      • 서버에서는 클라이언트를 구분하기 위해서 세션 ID 를 부여하여 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태 유지
    • 세션의 장점
      • 클라이언트의 정보를 서버에 저장하기 때문에 쿠키보다 보안에 우수
    • 세션의 단점
      • 쿠키보다 보안 면에서 우수하지만 사용자가 많아질경우 서버 메모리를 많이 차지하게 됨 -> 성능 저하의 요인
    • 세션의 동작 방식
      • 클라이언트가 서버에 접속시 세션 ID 를 발급
      • 클라이언트는 세션 ID 에 대해 쿠키를 사용하여 저장
      • 클라이언트가 서버에 다시 접속 시 이 쿠키를 이용해서 세션 ID 값을 서버에 전달
    • 로그인과 같이 보안 상 중요한 작업
728x90