본문 바로가기
IT개발/Spring5

[Spring5]로그인과 쿠키, 세션, 인터셉터

by Thompson 2024. 11. 24.
728x90

로그인(Login)

로그인은 웹 클라이언트를 통해 사용자와 애플리케이션의 연결을 시작하는 과정입니다. 이를 통해 사용자는 최초 연결 시 ID와 비밀번호를 입력하여 애플리케이션과 연결되고, 이후에는 "쿠키"와 "세션"을 사용하여 계속 연결 상태를 유지합니다.

  • 최초 연결 : "사용자 ID"와 "비밀번호"로 애플리케이션과 연결
  • 계속 연결 : "쿠키"와세션"을 사용하여 매번 로그인하지 않고도 연결 상태 유지

인터셉터(Interceptor)

인터셉터는 스프링 MVC에서 "DispatcherServlet"과 "컨트롤러" 사이에서 동작하는 모듈입니다. 서블릿 필터와는 다르게 "인터셉터"는 요청과 응답을 가로채는 역할을 하며, 애플리케이션의 목적에 맞게 사용해야 합니다.

  • 역할 : 요청/응답을 가로채어 로깅, 인증, 권한 처리 등의 기능을 수행
  • 사용 영역 : DispatcherServlet과 컨트롤러 사이

쿠키와 세션(Cookie and Session)

쿠키(Cookie)

쿠키는 클라이언트와 서버 간의 "상태 정보"를 저장하고, 클라이언트에서 서버로 요청을 보낼 때, 이 정보를 포함시켜 이전의 요청과 연결되도록 합니다. 이를 통해 사용자는 로그인 상태를 유지할 수 있습니다.

  • 구성 요소 : 이름, 값, 유효 시간, 도메인, 경로
  • 동작 : 클라이언트는 쿠키를 저장하고, 이후 요청 시 이를 서버로 반환하여 이전 요청과의 연관성을 유지합니다.

세션(Session)

세션은 클라이언트와 서버 간의 연결을 지속하는 방법으로, 쿠키를 이용해 클라이언트의 "세션 ID"를 저장하고, 서버는 이를 통해 "연결"을 계속 유지합니다. 세션에는 "타임아웃"이 설정되어 있어 일정 시간 후 자동으로 종료될 수 있습니다.

  • 목적 : 사용자가 웹 애플리케이션을 사용하는 동안 세션을 유지
  • 기술 : 쿠키와 세션 ID를 사용하여 연결 지속

쿠키의 동작 원리

  1. 최초 연결 : 사용자가 로그인하면 쿠키가 생성되어 클라이언트에 전달됩니다.
  2. 계속 사용 : 클라이언트는 쿠키를 저장하고, 이후 요청 시 쿠키를 서버로 반환하여 로그인 상태를 유지합니다.

쿠키의 구성 요소

  1. 이름 : 쿠키를 구별하는 식별자
  2. : 쿠키 값 (인코딩/디코딩 필요)
  3. 유효 시간 : 쿠키의 유지 시간
  4. 도메인 : 쿠키를 전송할 도메인
  5. 경로 : 쿠키를 전송할 경로

쿠키 변경 및 삭제

  • 변경 : 변경된 쿠키를 새로 생성하고, 클라이언트에게 전달하여 기존 쿠키를 덮어씁니다.
  • 삭제 : 쿠키의 유효 시간을 0으로 설정하여 삭제합니다.

쿠키와 보안

쿠키는 클라이언트와 서버 간에 전송될 때 내용이 노출될 수 있으므로 중요한 정보를 쿠키에 저장하는 것은 피해야 합니다. 대신 서버에서 세션 관리 기술을 사용하여 인증 정보를 처리합니다.