DevToolPal
한국어
3xx 리디렉션

304 Not Modified

수정되지 않음

의미

클라이언트가 이미 가진 캐시 사본이 여전히 유효하므로 서버가 본문을 보내지 않습니다. If-None-Match나 If-Modified-Since가 있는 조건부 요청에 대한 응답입니다.

흔한 원인

  • If-None-Match의 ETag가 현재 버전과 일치함
  • If-Modified-Since 이후 리소스가 바뀌지 않음
  • 브라우저가 캐시된 자산을 재검증함

해결 방법

클라이언트 또는 방문자라면

캐시된 본문을 사용하세요. 내용이 오래되어 보이면 검증자가 잘못되었을 수 있으니 강제 새로 고침하거나 ETag 생성을 확인하세요.

사이트나 API 운영자라면

안정적인 ETag(로드 밸런서 뒤 모든 서버에서 동일)를 생성하고, 200에서 보낼 캐시 헤더를 똑같이 보내세요.

응답 예시

HTTP/1.1
HTTP/1.1 304 Not Modified
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
ETag: "33a64df5"
Cache-Control: max-age=3600

명세

RFC 9110 §15.4.5

자주 묻는 질문

› 304는 오류인가요?

아닙니다. 클라이언트 캐시가 최신임을 알려 대역폭을 절약합니다.

› 배포 후 사용자가 옛 파일을 보는 이유는?

캐시 헤더가 오래된 사본을 허용하기 때문입니다. 자산에는 핑거프린트가 붙은 파일 이름을, HTML에는 짧은 max-age와 재검증을 쓰세요.