get请求参数放body里,post请求参数放url上这种是否合理?
有时候参数很少的情况我会让前端把参数放到post的url上,因为我感觉比如有两个参数,我后端要新建一个bean用@RequestBody接收完全没必要
我的想法是:如果get请求的参数可能比较复杂比如有bean的嵌套或者长度比较大超过了容器的限制(不考虑产品涉及是否合理),就可以放在body中,否则就放在url上;如果post请求参数比较简单(比如两个参数),我就放在url上不想在新建一个bean了(感觉麻烦),如果参数比较多或者比较复杂就放在body中。
我的这种想法合理吗?
技术上讲是可以的,但是不建议: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET
虽然HTTP规范(RFC 7231)并未规定GET请求不可以携带Body,但是后续的规范逐步建议应该明确这种行为,给予警告甚至拒绝。
曾经ElasticSearch的RESTAPI采用GET请求携带Body请求的接口格式和规范,但在目前版本中已经彻底废弃
一篇不错的介绍文章可以参见: https://www.baeldung.com/cs/http-get-with-body
如果你用第三方类库,可能已经开始拒绝GET请求携带Body了,所以更不建议你这么去做