• 쿠키, 세션

    2024. 12. 30.

    by. hyunji1109

    클라이언트가 서버와의 통신을 할 때 상태 정보를 유지하려면 쿠키와 세션이 필수적이다.
    이 두 기술은 주로 사용자 인증과 관련된 작업에 사용된다.

     

    왜 쿠키와 세션을 사용하나요?
    HTTP 프로토콜은 Stateless(상태 비저장)이기 때문에 클라이언트와 서버 간의 연결은 요청과 응답이 완료되면 끊어지게 된다. 웹은 사용자 인증 작업을 여러 요청에 걸쳐 상태를 유지시켜야한다 만약 상태 유지가 되지 않는다면 사용자는 로그인 후 다른 페이지로 이동 할때마다 로그인 정보를 계속 입력해야하는 상황이 일어날 수 있다.

     

    1. 쿠키

    클라이언트(브라우저)에 저장되는 데이터파일이다.

    사용자가 웹사이트를 방문 할 때 서버가 브라우저에 정보를 저장하고 브라우저는 정보를 다시 서버에 전송한다.

    클라이언트에 저장하는 이름, 값, 만료일, 경로 정보로 구성되어있다.

     

    특징

    • 저장 위치
      • 클라이언트(부라우저)에 저장된다.
    • 만료 시간
      • 만료 시간이 설정되어 있으며 만료시 자동으로 삭제된다.

     

    용도

    • 사용자 정보
    • 로그인 상태
    • 사이트 설정

     

    보안

    • 클라이언트에 저장되기 때문에 취약하다.
      • HTTPS를 사용하거나 HttpOnly, Secure 플래그를 설정한다.

     

    예시

    • 사용자 설정, 테마, 장바구니 등 로그인하지 않아도 필요한 정보를 저장할 때 사용한다.

     

    2. 세션

    서버에서 데이터를 관리한다.

    사용자 상태를 추적하고 데이터를 유지할 때 사용된다.

    사용자가 사이트를 떠날 때까지 서버에서 계속 유지한다.

     

    특징

    • 저장 위치
      • 서버에 저장된다.
    • 식별자
      • 클라이언트의 브라우저에 세션 ID를 쿠키가 URL에 포함시켜서 식별한다.
    • 만료 시간
      • 브라우저를 닫거나 일정 시간이 지나면 만료된다.

     

    용도

    • 로그인한 사용자의 정보
    • 보안이 중요한 정보

     

    보안

    • 서버에서 관리되어 보안성이 높다.
    • 세션 ID만 클라이언트에 저장되어 민감한 정보를 안전하게 처리한다.

     

    예시

    • 로그인 상태, 사용자 권한 정보등 보안이 중요한 정보를 다룰 때 사용

     

      쿠키 세션
    저장 위치 클라이언트 서버
    정보 저장 방식 클라이언트에 데이터 저장 서버에 데이터 저장
    클라이언트는 세션 ID만 저장
    보안성 낮음 높음
    만료 시간 설정된 시간 후 자동 삭제 브라우저 종료 시 자동 만료 또는 시간 제한
    지속성 웹 브라우저를 닫아도 정보 유지 웹 브라우저 닫는 순간 삭제
    용도 사용자 설정, 로그인 정보 유지 등 로그인 세션 유지, 사용자 정보 관리 등
    용량 제한 한 쿠키에 저장할 수 있는 데이터 크기 제한 서버의 저장 공간에 의존

    'CS > 웹개발' 카테고리의 다른 글

    Spring framework  (0) 2025.01.02
    JWT  (0) 2025.01.01
    JDBC, Mybatis, JPA  (0) 2024.12.29
    TCP와 UDP  (0) 2024.12.26
    HTTP  (0) 2024.12.24

    댓글