2012-01-25 6 views
8

일반적으로 REST 커뮤니티는 GET 요청에서 복잡한 데이터를 싫어하는 것 같습니다. 이것 뒤에 좋은 원칙이 있는지 궁금하거나 GET 사전에 대한 (임의의 URL 길이) 제한을 알리는 것입니까?REST 및 GET ... 다시

URL과 리소스 간의 통신에 만족하지만 GET 요청은 요청 본문의 json 또는 xml (HTTP 사양에서 허용)에서 복잡한 데이터를 가져올 수없는 이유는 무엇입니까?

GET의 요점은 GET 요청은 서버 상태를 수정하지 않는다는 신호입니다. 이는 요청의 복잡성과 직각으로 보입니다. 그러나 복잡한 쿼리는 PUT 또는 POST로 생성 된 다음 GET에서 참조되는 것이 좋습니다.

이것은 GET 요청에 따라 몸을 가지지 않는 관습을 원칙의 상태로 올려 놓고 불행한 부작용이있는 것 같습니다. 리소스가 될 필요가없는 다른 개체의 상태를 유지해야합니다. 그 자체가 - 그것이 쿼리입니다.

하지만 내가 누락 된 다른 원칙이있을 수 있습니다. 귀하의 의견을 환영합니다!

답변

4

기존 웹 중개인이 귀하의 GET 본문을 삭제할 것이라는 두려움이 있습니다. 다행스럽게도 새로운 httpbis 스펙은 본문을 가져 오는 텍스트를 다시 쓰고 조금 덜 무서웠습니다. 개인적으로 안전하지 않은 요청을 기록하기 때문에 시체를 가져 오는 것이 좋습니다. POST가 안전한지 여부를 쉽게 식별 할 수있는 방법이 없습니다. 사용자 에이전트와 원본 서버 사이에있는 구성 요소를 제어 할 수 있다면 본문에서 GET을 사용하십시오.

+0

흥미로운 ... 누군가가 "야생에서"떨어 뜨린 시체와 함께 그들의 불행한 경험을 공유 할 수 있습니까? – shaunc

+0

아니요, 그렇다면 어떤 계획이 있습니까? –

+0

꼬리를 돌리고 도망 가세요! 그러나 그것의 유일한 무서운 전설 및 그것의 누군가가 (듣는) 결코 일어나지 않는 경우에, 저에게 약간 더 자부하는. – shaunc