TrueURL
TrueURL

메뉴

412 전제 조건 실패

If-Match나 If-Unmodified-Since 같은 요청 헤더의 조건이 거짓으로 평가되어, 서버가 변경 사항을 적용하지 않았습니다.

사유 구절
Precondition Failed
리디렉션 여부
아니요
기본 캐시 가능 여부
아니요

412 Precondition Failed는 요청 헤더에 있는 하나 이상의 조건이 거짓으로 평가되었다는 뜻입니다. If-Match나 If-Unmodified-Since가 실패했거나, GET과 HEAD 이외의 메서드에서 If-None-Match가 실패한 결과입니다. 서버는 요청한 작업을 수행하지 않았습니다.

주된 목적은 낙관적 동시성 제어(optimistic concurrency control)를 통해 변경 사항이 유실되는 것을 막는 것입니다. 클라이언트는 리소스를 ETag와 함께 읽고, 수정한 뒤, If-Match와 그 ETag를 붙여 변경 사항을 보냅니다. 그사이 다른 사람이 리소스를 변경했다면 ETag가 더 이상 일치하지 않으므로, 서버는 다른 사람의 변경을 덮어쓰는 대신 412로 응답합니다. 또한 If-None-Match: *와 함께 사용해 아직 존재하지 않을 때만 리소스를 생성하는 데도 쓰입니다.

GET과 HEAD에서는 If-None-Match나 If-Modified-Since가 거짓이면 412가 아니라 304 Not Modified가 반환됩니다.

응답 예시

HTTP
HTTP/1.1 412 Precondition Failed
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "v8"
Content-Type: application/json
Content-Length: 52

{"error":"If-Match does not match the current ETag"}

SEO 및 리디렉션 검사

412는 크롤링이 아니라 API와 WebDAV의 조건부 쓰기 작업에서 발생합니다. 크롤러의 조건부 GET 요청은 304나 200으로 끝납니다. 리디렉션 검사에서 412가 나온다면 사용자 지정 요청 헤더로 추가한 If-* 헤더를 확인하세요.

주요 원인과 사용 사례

  • 리소스를 읽은 뒤 리소스가 변경되어 편집이 거부되었습니다(ETag 불일치).
  • If-None-Match: *가 기존 파일을 덮어쓰지 못하게 막았습니다.
  • 클라우드 스토리지나 CDN API가 오래된 ETag가 담긴 조건부 요청을 받았습니다.

URL 리디렉션 검사

무료 TrueURL 리디렉션 검사 도구로 URL이 반환하는 모든 상태 코드를 홉별로 확인하세요.