Files
llm-wiki/raw/official-docs/rfc9457-problem-details-http-apis.md
T

8.3 KiB

title, source_type, url, archive_url, vendor, related_branches, related_projects, tags, created
title source_type url archive_url vendor related_branches related_projects tags created
RFC 9457 — Problem Details for HTTP APIs (IETF Standards Track, July 2023) official-doc https://www.rfc-editor.org/rfc/rfc9457.html IETF / M. Nottingham, E. Wilde, S. Dalal
feature-contract-registry-governance
ca-skeleton
official-doc
ca-skeleton
api-design
ietf
api-contract
2026-06-15

RFC 9457 — Problem Details for HTTP APIs (IETF Standards Track, July 2023)

Layer: raw/ — 외부 자료(공식 문서 / 표준 사양)의 원문 발췌·출처 기록. 검증된 요약은 /ingestwiki/concepts/에 별도 작성. 원본은 raw에 영구 보관.

Parent / 활용 branch (필수, 최소 1개+)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-contract-registry-governance D5: 외부 platform 표준(RFC 7807→9457)을 사용하는 경우에도 skeleton registry 에 mapping/version row 를 남겨야 함 — RFC 9457 이 RFC 7807 을 obsolete 하고 error envelope shape 을 변경한다는 IETF 공식 증거

출처 / Source

  • 원본 URL: https://www.rfc-editor.org/rfc/rfc9457.html
  • 아카이브 URL: (미제공)
  • 저자 / 조직: M. Nottingham, E. Wilde, S. Dalal — IETF Standards Track
  • 발행일: July 2023
  • 마지막 확인일: 2026-06-15

왜 저장했는지 / Why archived

RFC 9457 은 RFC 7807 을 obsolete 하고 error envelope 의 외부 표준이 버전 관리된다는 사실을 공식으로 증명한다. feature-contract-registry-governance 브랜치의 D5 결정 — "외부 platform 표준을 쓰는 경우에도 skeleton registry 에 mapping row 를 남김" — 이 UNSUPPORTED_DECISION 으로 표시된 것을 RFC 9457 원문 인용으로 뒷받침하기 위해 보관.

핵심 인용 / Key quotes (verbatim, 3~5문장)

[Abstract] "This document obsoletes RFC 7807."

[§3.1.1 — line 250] "Consumers MUST use the "type" URI (after resolution, if necessary) as the problem type's primary identifier."

[§3 — line 378] "Clients consuming problem details MUST ignore any such extensions that they don't recognize; this allows problem types to evolve and include additional information in the future."

[§4.2 — line 469] "This specification defines the "HTTP Problem Types" registry for common, widely used problem type URIs, to promote reuse."

[Appendix D — line 808] "Section 4.2 introduces a registry of common problem type URIs"

Claims Extracted / 추출된 주장

이 자료가 직접 말하는 것만 claim 으로 분리한다. 내 프로젝트에 적용한 결론은 여기 쓰지 않는다.

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
RFC9457-C1 RFC 9457 은 RFC 7807 을 공식 폐지(obsolete)하며 HTTP API error response 의 외부 표준이 버전 관리된다 [Abstract] "This document obsoletes RFC 7807." official-standard IETF Standards Track 을 따르는 모든 HTTP API error response 설계 RFC 7807 → 9457 외 에도 추가 개정이 없을 것이라는 보장 없음; ca-tmpl 의 기존 RFC 7807 기반 error 코드가 자동으로 9457 호환이 됨을 증명하지 않음
RFC9457-C2 소비자(consumer)는 반드시 type URI 를 problem type 의 **기본 식별자(primary identifier)**로 사용해야 한다 [§3.1.1] "Consumers MUST use the "type" URI (after resolution, if necessary) as the problem type's primary identifier." official-standard RFC 9457 을 준수하는 모든 HTTP API 클라이언트 및 서버 구현 server 측의 type URI 선택 방식(resolvable vs non-resolvable)을 규정하지 않음; 특정 프레임워크(Spring, etc.)의 기본 error 응답이 이 rule 을 준수하는지 증명하지 않음
RFC9457-C3 소비자는 인식하지 못하는 extension member 를 반드시 무시해야 한다(forward-compatibility 규칙) [§3] "Clients consuming problem details MUST ignore any such extensions that they don't recognize; this allows problem types to evolve and include additional information in the future." official-standard RFC 9457 을 준수하는 클라이언트 구현체; extension member 를 추가하는 server 설계 server 측이 어떤 extension 을 추가해도 된다는 것을 무한정 허용하지 않음; IANA registry 에 없는 extension 의 의미론적 안전성은 보장하지 않음
RFC9457-C4 IETF 는 RFC 9457 과 함께 "HTTP Problem Types" IANA registry 를 신설했다 [§4.2] "This specification defines the "HTTP Problem Types" registry for common, widely used problem type URIs, to promote reuse." official-standard HTTP API 의 error type URI 재사용을 원하는 모든 구현자 registry 등록이 의무(MUST)임을 규정하지 않음; vendor-specific / application-specific / deployment-specific 값은 등록 불가(§4.2 본문)
RFC9457-C5 RFC 9457 이 RFC 7807 대비 도입한 3가지 변경은 (1) common problem type URI 의 registry 신설, (2) 다수 문제(multiple problems) 처리 방식 명확화, (3) 역참조 불가 type URI 에 대한 안내 추가다 [Appendix D] "Section 4.2 introduces a registry of common problem type URIs" [...] "Section 3 clarifies how multiple problems should be treated" [...] "Section 3.1.1 provides guidance for using type URIs that cannot be dereferenced" official-standard RFC 7807 → 9457 마이그레이션을 고려하는 API 설계자 error envelope 의 필드 추가·삭제가 없었음을 의미하지 않음(type/status/title/detail/instance 5 멤버는 유지되지만 semantic 변경 가능); 특정 언어/프레임워크 구현체의 migration 가이드를 제공하지 않음

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • RFC9457-C1: HTTP API error response 의 외부 표준이 개정될 수 있으며 RFC 7807 은 이미 obsolete — skeleton registry 에 version/mapping row 가 필요한 이유
    • RFC9457-C2: error envelope 의 type URI 가 primary identifier 이며 소비자는 이것으로 problem type 을 식별해야 함
    • RFC9457-C3: extension member 를 추가해도 forward-compatible 하게 설계할 수 있음 — registry 에 새 column 추가 시 소비자 영향 최소화 가능
    • RFC9457-C4: 표준 error type URI 재사용을 위한 IANA registry 가 존재함
    • RFC9457-C5: RFC 7807 → 9457 의 3가지 구체적 변경 사항
  • 이 자료가 증명하지 않는 것:
    • RFC 9457 이 RFC 7807 과 필드 레벨에서 하위 호환임을 보장하지 않음 — migration 검증은 별도 필요
    • Spring Boot / Keycloak 등 특정 구현체가 RFC 9457 을 자동으로 준수하는지 증명하지 않음
    • ca-tmpl 의 현재 error response 가 RFC 9457 compliant 한지 증명하지 않음
    • registry 에 외부 표준 mapping row 를 어떤 schema 로 추가해야 하는지 안내하지 않음 (D4 UNSUPPORTED_DECISION 영역)
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • ca-tmpl 의 error response envelope 이 RFC 9457 의 type/status/title/detail/instance 구조를 따르는지 코드 검증
    • Spring Boot ProblemDetail (Spring 6+) 의 RFC 9457 준수 여부 공식 문서 확인 (별도 raw 자료 필요)
    • registry 의 compatibility_impact column 이 RFC 9457 obsolete 처리를 어떻게 반영할지 결정 (D4 UNSUPPORTED_DECISION 범위)

메모 / Notes

  • RFC 9457 의 IANA "HTTP Problem Types" registry URL: https://iana.org/assignments/http-problem-types
  • Appendix D 의 3가지 변경 중 "(2) multiple problems" 는 §3 에서 단일 response 에 여러 problem 을 담는 방법을 안내 — ca-tmpl 의 validation error 처리(복수 field 오류 시 어떻게 encapsulate 할지)에 직접 관련
  • RFC9457-C3(forward-compatibility MUST ignore) 는 ca-tmpl registry 의 extension column 추가 시 소비자 영향을 제한하는 근거로 활용 가능 — 단 UNSUPPORTED_IMPL_DECISION 없이 직접 결론 내리지 말 것