피드로 돌아가기
GeekNewsBackend
원문 읽기
RFC 10008: 새로운 HTTP QUERY 메서드
Safe/Idempotent 성격의 본문 전달을 위한 HTTP QUERY 메서드 정의
AI 요약
Context
기존 GET 방식은 질의 데이터를 URI에 포함함에 따라 URI 길이 제한 및 인코딩 비용 발생과 보안 로그 노출 문제를 야기함. 이를 해결하기 위해 POST를 질의 용도로 오용하는 사례가 빈번했으나, 이는 메서드의 의미론적 불일치로 인해 캐싱 및 자동 재시도 적용에 한계가 있었음.
Technical Solution
- GET의 Safe/Idempotent 속성과 POST의 Request Body 전달 방식을 결합한 신규 QUERY 메서드 설계
- 요청 본문과 Content-Type의 일관성을 강제하여 서버 측 질의 처리의 명확성 확보
- Content-Location 헤더를 통한 질의 결과 리소스 식별 및 Location 헤더를 통한 Equivalent Resource 매핑 구조 도입
- 요청 본문과 메타데이터를 모두 포함하는 Cache Key 설계를 통해 응답 캐싱 가능성 구현
- 400, 415, 422 등 상태 코드를 세분화하여 미디어 타입 불일치와 질의 처리 불가 상황을 구분하는 오류 처리 메커니즘 정의
- 303 See Other 리다이렉션을 통한 QUERY 요청의 일반 GET 조회 전환 경로 제공
실천 포인트
- 복잡한 검색 필터나 대용량 질의 파라미터가 필요한 API 설계 시 QUERY 메서드 검토 - Request Body를 사용하는 읽기 전용 API의 경우 Safe/Idempotent 보장 여부 확인 - API 응답에 Location 헤더를 제공하여 복잡한 QUERY 요청을 단순 GET 요청으로 전환 가능한 구조 설계 - 캐시 전략 수립 시 URI뿐만 아니라 Request Body의 정규화를 포함한 캐시 키 생성 로직 검토