The HTTP Query Method
(ietf.org)- 새로운 HTTP 메소드인 QUERY를 제안
- Request시에 콘텐츠를 전달할 수 있는, 안전하고 멱등성(idempotent)이 있는 요청 메소드
- Request에 전달되는 데이터가 너무 커서 URI로 인코딩할 수 없을 때 이 방법을 사용가능
- 쿼리 매개변수가 수KB 이상일 경우 많은 구현체에서 제한을 둠
- 요청 전에 이 제한을 미리 알수 없는 경우가 많고, 인코딩 해야하므로 비효율적
- 그래서 많은 구현에서는 GET 대신 POST를 사용하여 쿼리를 수행
- 하지만 서버에 대한 구체적인 지식이 없으면, 안전하고 멱등성이 있는지 등을 알 수 없어서 GET과 동일한 기본적 제한이 있음
- QUERY 메소드는 GET과 POST 사용 간의 격차를 해소하는 솔루션을 제공
- POST와 마찬가지로 쿼리 작업에 대한 입력은 요청 URI의 일부가 아닌 요청의 컨텐츠 내에서 전달
- 그러나 POST와 달리 이 메소드는 명시적으로 안전하고 멱등성이 있어, 캐싱 및 자동 재시도와 같은 기능을 할 수 있음
Request
QUERY /contacts HTTP/1.1
Host: example.org
Content-Type: example/query
Accept: text/csv
select surname, givenname, email limit 10
Response
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Location: /contacts/responses/42
Location: /contacts/queries/17
surname, givenname, email
Smith, John, john.smith@example.org
Jones, Sally, sally.jones@example.com
Dubois, Camille, camille.dubois@example.net
https://www.baeldung.com/cs/http-get-with-body
HTTP 스펙이 독자에게 자체 해석의 여지를 주고 일관성없이 변해서 아예 메소드를 새로 만드려는 걸로 보입니다