304는 새 본문 대신 저장한 표현을 쓰라는 응답입니다
304 Not Modified는 조건부 GET·HEAD 요청에서 저장된 표현이 여전히 유효함을 알리는 응답입니다. 응답 본문을 보내지 않는다고 원본 문서가 빈 문서라는 뜻은 아닙니다. 따라서 304의 본문 길이만 보고 웹페이지가 삭제되었다거나 배포 내용이 비었다고 결론 내리지 않습니다. 근거: MDN 304 Not Modified, 2026-11-04.
근거: MDN 304 Not Modified · 2026-11-04 확인
첫 조회와 재검증을 가상 예제로 구분합니다
처음 안내문을 받아 로컬에 저장할 때 서버가 본문과 ETag를 보냈다고 합시다. 다음 조회에서 클라이언트가 그 ETag를 If-None-Match로 보내고 서버가 조건에 맞춰 304를 반환하면 클라이언트는 저장한 안내문을 사용합니다. 이 흐름은 실제 서버 관찰값이 아닌 개념 예입니다. ETag가 없는 환경에서는 수정 시각을 쓰는 조건부 요청이 있을 수 있으므로 실제 요청 헤더를 기준으로 읽습니다.
근거: MDN 304 Not Modified · 2026-11-04 확인
Network에서 조건 헤더와 표시 본문을 나눠 기록합니다
자신의 시험이 허가된 페이지에서 개발자 도구를 열고 해당 요청의 상태, If-None-Match 또는 If-Modified-Since, 응답의 ETag·Last-Modified·Cache-Control을 확인합니다. 브라우저 도구가 보여 주는 저장 본문과 네트워크가 새로 보낸 본문을 혼동하지 않습니다. 304 자체에 본문이 없다는 관찰과 화면에 예전 내용이 표시된다는 관찰을 별도 줄로 적습니다.
근거: MDN 304 Not Modified · 2026-11-04 확인
예전 내용이면 어떤 경로의 표현인지 먼저 봅니다
가상의 수정 안내문이 계속 예전 내용으로 보인다면 요청 URL·리디렉션 최종 주소·배포 환경이 맞는지 먼저 확인합니다. 다음으로 실제 원본의 버전 표시나 확인 가능한 본문을 대조하고 캐시 정책과 중간 CDN의 동작을 살핍니다. 새 버전이 원본에도 없다면 브라우저 캐시만 지워서는 해결되지 않습니다. 주소 쿼리를 무작정 바꾸기 전에 어디의 저장본을 보고 있는지 구분합니다.
현재 본문 검증에는 실제 표현을 받아 대조합니다
배포 검수가 목적이라면 허가된 진단 환경에서 캐시를 우회하거나 재검증하도록 하는 도구의 동작을 확인하고 실제 응답 본문을 확보합니다. 그 본문의 핵심 문장·버전·자산이 기대와 맞는지 봅니다. 200이라는 숫자만 받아도 로그인 페이지나 다른 환경일 수 있으므로 본문 대조를 생략하지 않습니다. 여기서는 그 진단을 실행하지 않았고 정상 배포 결과도 주장하지 않습니다.
캐시 전체 삭제 전에 범위를 좁힙니다
공용 CDN의 전체 캐시 무효화는 다른 이용자와 비용에 영향을 줄 수 있습니다. 운영 정책과 권한 없이 실행하지 말고 문제 URL, 조건 헤더, 기대 본문, 관찰 본문을 담당자에게 전달합니다. 변경된 표현인데 검증자가 그대로라면 원본의 ETag·수정 시각 생성과 캐시 설정을 점검할 항목으로 남깁니다. 304를 없애는 것 자체보다 올바른 최신 표현이 보이는 것이 해결 기준입니다.
원문으로 이어 읽기
확인일: 2026-11-04. 정의와 적용 범위, 발행일과 판본을 함께 살펴봅니다. 원문이 존재한다는 사실만으로 개별 주장의 정확성과 재사용 권리가 자동 보장되지는 않습니다.