DAY35(1) - 상태 유지(세션&쿠키)

은나현·2023년 3월 16일
0

📌 1. 상태 유지

📍 1-1. 상태 유지의 중요성

  • HTTP 프로토콜은 하나의 요청에 응답할 때마다 새롭게 연결을 생성하고 중단하기 때문에 이전 처리에 대한 정보를 갖고 있지 않다. 동일한 클라이언트가 계속해서 요청을 보낼 때 로그인 정보 등을 저장해 두기 위해서는 상태 유지 기술이 필요하다.

📍 1-2. 세션(Session)

  • 하나의 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장한다.

    • 종료 시점 : 브라우저 종료 시
    • 내장객체로서 브라우저마다 한 개씩 존재한다.
    • 고유한 sessionID 생성 후 정보를 추출한다.
  • 장단점

    • 장점
      • 서버에서 접근할 수 있으므로 보안성이 좋다.
      • 저장 용량의 한계가 거의 없다.
    • 단점
      • 서버에 데이터를 저장하므로 서버에 부하가 걸릴 수 있다.
  • 세션 사용 방법

    • 세션값 설정 : session.setAttribute("설정이름",값);
    • 세션유지시간 설정(초단위) :
      • 60분 : session.setMaxInactiveInterval(60*60);
      • 무한대 : session.setMaxInactiveInterval(-1);
    • 세션에 저장된 값 획득 : session.getAttribute("설정이름");
    • 세션 삭제 :
      • 특정 세션 삭제 : session.removeAttribute("설정이름");
      • 세션 전체 제거 : session.invalidate();

📍 1-3. 쿠키(Cookie)

  • 서버에서 생성되어 클라이언트 컴퓨터에 저장되는 작은 정보 단위.

    • 종료 시점 : 쿠키 저장 시 설정
    • 서버의 응답 결과에 포함되어서 클라이언트에게 전송된다.
    • 클라이언트는 서버에 다른 요청을 보낼 때 저장하고 있던 쿠키를 헤더에 포함시켜서 전송한다.
  • 장단점

    • 장점
      • 클라이언트의 일정 폴더에 정보를 저장하기 때문에 서버의 부하를 줄일 수 있다.
    • 단점
      • 정보가 사용자 컴퓨터에 저장되기 때문에 보안이 위협받을 수 있다.
      • 데이터 저장 용량에 제한이 있다.
      • 과자 부스러기처럼 작은 값을 저장할 수 있다.
      • 일반 사용자가 브라우저 내의 기능인 쿠키차단을 사용하면 무용지물이 된다.

📍 1-4. 쿠키 vs 세션

쿠키세션쿠키세션
저장 위치클라이언트
(접속자 PC)
웹서버저장 형식textObject
만료 시점쿠키 저장 시 설정브라우저 종료시사용 자원클라이언트
리소스
웹 서버
리소스
용량제한총 300개서버가 허용하는 용량제한속도와 보안비교적 빠름
비교적 위험
비교적 느림
비교적 안전

0개의 댓글