피드로 돌아가기
GeekNewsBackend
원문 읽기
새로운 HTTP QUERY 메소드
RFC 10008 QUERY 도입을 통한 Safe/Idempotent 요청 본문 처리 표준화
AI 요약
Context
복잡한 필터 및 중첩 구조의 검색 요청 처리 시 GET의 URL 길이 제한과 인코딩 오버헤드로 인한 병목 발생. 이를 해결하기 위해 POST를 우회적으로 사용했으나 비멱등성(non-idempotency)으로 인한 재시도 위험 및 캐싱 최적화 불가라는 설계적 모순 존재.
Technical Solution
- GET의 Safe/Idempotent 특성과 POST의 Request Body 전송 능력을 결합한 QUERY 메소드 정의
- URL 파라미터 의존도를 낮춰 비ASCII 문자 및 특수문자 인코딩에 따른 요청 크기 증가 문제 해결
- 중첩 구조 및 배열 데이터의 표준화된 표현 방식을 Request Body를 통해 구현
- 읽기 전용 작업임을 명시하여 프록시 및 미들웨어의 자동 캐싱 최적화 기반 마련
- 리소스 생성 목적의 POST와 검색 목적의 QUERY를 분리하여 RESTful 설계 원칙 준수
실천 포인트
1. 복잡한 검색 필터링이 필요한 API 설계 시 QUERY 메소드 지원 여부 확인
2. 단순 쿼리 및 URL 공유/북마크가 필요한 기능은 기존 GET 유지
3. QUERY 도입 시 요청 본문을 캐시 키에 포함하는 인프라 설정 검토
4. 클라이언트 및 프록시 서버의 RFC 10008 호환성 테스트 수행