Develop/CS
HTTP 헤더 - 캐시, 조건부 요청
연로그
2021. 2. 16. 17:08
반응형
일반 헤더> yeonyeon.tistory.com/44?category=925906
쿠키, 캐시, 세션 차이> yeonyeon.tistory.com/6?category=925906
목차
1. 캐시
2. 검증 헤더와 조건부 요청
3. 프록시 캐시
1. 캐시
캐시 적용 전
- 같은 데이터를 네트워크를 통해 계속 다운받게 됨
- 네트워크: slow, expensive -> 브라우저 로딩 속도 ↓-> 느린 사용자 경험
캐시 적용 후
- 캐시 가능 시간 동안 네트워크를 사용하지 않아도 됨
- 브라우저 로딩 속도 ↑ -> 빠른 사용자 경험
- 단, 캐시 유효 시간이 초과되면 서버를 통해 데이터 다시 조회+캐시 갱신
- Cache-controle: max-age=60 // 캐시의 유효 시간은 60초이다. (60초 후에는 서버에서 가져옴)
- Last-Modified: 2020년 11월 11일 11:11:11 // 수정일 비교 후 수정사항 없으면 파일 브라우저 캐시에서 가져옴
2. 검증 헤더와 조건부 요청
- 캐시 유효 시간이 초과해도 서버의 데이터가 갱신되지 않을 경우 304 Not Modified + 헤더 메타 정보만 응답. (body 제외)
- client는 서버가 보낸 응답 헤더 정보를 이용해 캐시에 저장된 데이터 재활용.
- last-modified, if-modified-since: 날짜 비교. 1초 미만 x.
- etag, if-none-match: etag 비교.
검증 헤더
- last-modified, Etag
- 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터
조건부 요청
- if-modified-since, if-none-match
- 조건 만족: 200 OK
- 조건 불만족: 304 Not Modified
캐시 제어 헤더
- Cache-Controle: 캐시 제어
- Pragma: 캐시 제어 (하위 호환)
- Expires: 캐시 유효 기간 (하위 호환)
Cache-Control
- max-age: 유효 시간 (초 단위)
- no-cache: 데이터 캐시 가능. origin 서버에 검증하고 사용.
- no-store: 저장 불가 (민감 정보 존재)
- must-revalidate: 캐시 만료 후 최초 조회 시 원 서버에 검증 (원 서버 접근 실패시 504 오류)
- public: public 캐시에 저장 가능
- private: 해당 사용자만을 위한 것 (default)
- s-maxage: 프록시 캐시에만 적용되는 max-age
3. 프록시 캐시
프록시 캐시 도입 전/후
- 미국 서버의 파일을 받으려고 한다. 원래라면 사람 한 명당 0.5초를 기다려야 한다. 한국 어딘가에 프록시 서버를 설치한다면 클라이언트들은 프록시 서버를 통해 0.1초만에 파일을 받을 수 있다.
본 글은 김영한님의 유료 강의를 들으며 요약, 정리를 목적으로 작성한 것으로 홍보나 금전적 목적이 없습니다.
제 방식으로 정리한 것으로 강의 내용을 추가/삭제/변경된 부분이 많으며 자세한 설명은 강의 구매를 추천 드립니다.
모든 개발자를 위한 HTTP 웹 기본 지식 / 김영한 / inflearn
www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
반응형