Cache & Cookie

황상익·2024년 11월 6일

Cache-Control

  • Cache-Control: max-age
    • 캐시 유효 시간(초)
    • 캐시 유효 시간이 지나면 다시 서버를 통해 데이터를 응답받고 캐시를 갱신한다.
  • Cache-Control: no-cache
    • 캐시 가능한 데이터지만, 서버에 검증하고 사용해야 한다.
  • Cache-Control: no-store
    • 보안에 민감한 데이터, 캐시하지 않는다.
  • if-modified-since : 캐시로 저장된 데이터 최종 수정일
    - 요청시 사용하는 헤더이다.
  • Last-Modified : 데이터가 마지막으로 수정된 시간
    • if-modified-since 요청이 오면 응답한다.
    • 304 (Not Modified) 상태코드와 함께 응답되면 수정되지 않았다는 의미
      HTTP Message Body가 존재하지 않는다. 캐시 사용
    • 응답시 사용하는 헤더이다
  • ETag : 캐시용 데이터에 날짜, 시간이 아닌 이름을 지정한다
    • if-modified-since + Last-Modified 방식은 수정된 데이터가 같거나 캐시가 불필요한 경우를 구분하지 못한다.
    • 요청시 사용하는 헤더이다.
  • Set-Cookie : 서버에서 응답시 클라이언트로 Cookie 값 전달

    • 만료기간(expire, max-age), 사용될 위치(domain, path)를 설정할 수 있다.
    • 주의
      • 항상 서버에 전달되니 최소한의 정보만 사용하여 트래픽을 최적화 시켜야 한다.
      • 탈취 당하기 쉬우니 보안에 민감한 개인정보 등은 저장하지 않는다.
  • Cookie : 클라이언트가 서버에서 받은 쿠키를 Cookie 헤더를 통해 전송한다.

  • Secure : 해당 헤더가 적용되면 https인 경우에만 쿠키를 전송한다.

    • 기본적으로 http, https 구분하지 않고 쿠키를 전송한다.
    • HTTP + Secure 가 HTTPS 이다.
  • HttpOnly : http 전송에만 사용한다.

    • 자바스크립트에서 쿠키를 접근하지 못하게 만든다.
  • SameSite : 쿠키에 설정된 도메인이 같은 경우만 쿠키를 전송한다.

profile
개발자를 향해 가는 중입니다~! 항상 겸손

0개의 댓글