HTTP를 통과하는 API를 설계 중이며 HTTP POST 명령을 사용하는지 궁금하지만 URL 쿼리 매개 변수 만 있고 요청 본문이없는 것이 좋은 방법입니다.
고려 사항 :
- "좋은 웹 디자인"은 POST를 통해 비등 전성 액션을 보내야합니다. 이것은 비등 전적인 행동이다.
- 요청 매개 변수가 URL에 있으면이 앱을 개발하고 디버깅하기가 더 쉽습니다.
- API는 널리 사용되지 않습니다.
- 본문이없는 POST 요청을 만드는 데 약간의 작업이 필요합니다. 예를 들어
Content-Length: 0
헤더를 명시 적으로 추가해야합니다. - 또한 본문이없는 POST는 대부분의 개발자 및 HTTP 프레임 워크의 기대에 약간 반대되는 것으로 보입니다.
요청 본문이 아닌 URL 쿼리를 통해 POST 요청에서 매개 변수를 보내는 데 더 많은 함정이나 장점이 있습니까?
편집 : 이것이 고려중인 이유는 작업이 dem 등성이 아니며 검색 이외의 부작용이 있기 때문입니다. HTTP 스펙을 참조하십시오 .
특히, GET 및 HEAD 방법은 검색 이외의 조치를 취하지 않아야한다는 협약이 확립되었습니다. 이 방법들은 "안전한"것으로 간주되어야합니다. 이를 통해 사용자 에이전트는 POST, PUT 및 DELETE와 같은 다른 방법을 특별한 방식으로 표현할 수 있으므로 안전하지 않은 조치가 요청되고 있다는 사실을 사용자에게 알릴 수 있습니다.
...
또한 메소드는 "오류 또는 만기 문제를 제외하고"N> 0 동일한 요청의 부작용이 단일 요청의 부작용과 동일하다는 점에서 "등전위"특성을 가질 수 있습니다. GET, HEAD, PUT 및 DELETE 메소드는이 특성을 공유합니다. 또한, OPTIONS와 TRACE 메소드는 부작용이 없어야하며, 따라서 본질적으로 dem 등호입니다.