RFC 10008: 새로운 HTTP QUERY 메서드
개발자들은 복잡한 데이터를 가져올 때 문제에 직면합니다. GET을 사용하고 싶지만 한계가 있고, POST를 사용하고 싶지만 용도에 맞지 않는 도구입니다. RFC 10008은 새로운 해결책인 QUERY 메서드를 제안합니다.
현재 GET 방식의 문제점:
- URL 제한: 브라우저와 서버는 URL 길이를 제한합니다. 필터가 너무 크면 요청이 실패합니다.
- 복잡한 구조: GET은 단순한 키-값 쌍을 사용합니다. 중첩된 JSON 객체를 보내는 것은 어렵습니다.
- 개인정보 보호 위험: 쿼리 파라미터가 서버 로그와 브라우저 기록에 남습니다.
현재 POST 방식의 문제점:
- 잘못된 의미론(Semantics): POST는 서버에 데이터를 생성하거나 변경하려 한다는 신호를 보냅니다.
- 캐싱 문제: 대부분의 시스템은 POST 요청을 캐싱하지 않습니다. 이는 애플리케이션의 속도를 저하시킵니다.
QUERY 메서드는 이를 변화시킵니다. 데이터 조회를 위해 요청 본문(request body)을 보낼 수 있게 해줍니다. 이를 통해 API를 깔끔하게 유지하면서 적절한 규칙을 따를 수 있습니다.
QUERY 메서드의 장점:
- 복잡한 본문 사용 가능: 검색 필터를 위해 전체 JSON 객체를 보낼 수 있습니다.
- 안전성 유지: 서버의 상태를 변경하지 않습니다.
- 속도 향상: GET 메서드와 마찬가지로 효율적인 캐싱이 가능합니다.
POST를 GET 용도로 억지로 사용하지 마세요. QUERY 메서드는 HTTP 표준을 위반하지 않으면서 풍부한 데이터를 가져올 수 있는 방법을 제공합니다.
출처: https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-rfc-10008-the-new-http-query-method-25fo