post和get的传参区别

先看下get和post请求的区别:

1、get使用url或Cookie传参,而post将数据放在body中

2、get的url会有长度上的限制,而post的数据则可以非常大

3、post比get安全,因为数据在地址栏上不可见

4、一般get请求用来获取数据,post请求用来发送数据

Get和Post都是Http协议的组件,所以底层都是使用tcp链接。Get的请求方式是将http的header和data一并发往服务端,也就是一条tcp数据包发送,这就会有两个问题:

数据量有限,依赖于Tcp负载能力,所以携带的数据量很大的情况下,容易造成重发。

所有的携带的数据只能接受转化成ASCII字符。

  但是Post不一样,post使用两步走,先发送http的header,然后再传输data。数据类型也不受限制。而且数据隐秘性比较好。

一、postman的传参方式一般有两种,params和body;body里面又分了form-data、x-www-form-urlencode、row等等几种;根据请求方式的不同,传参方式也不一样;

1、get请求方式,一般的传参是params,并且会以url?name="lele"&age=2这样的格式,接到url的后面

2、post请求方式,主要也是分为两种;post是先发送headers,再传输data,所以可以先确认header里面的Content-Type的值,这个是data数据的传输方式;

如果Content-Type=application/x-www-form-urlencoded,那传输方式就选择body里面的x-www-form-urlencode;

如果Content-Type=mutipart/form-data,那传输方式就是body里面的form-data;

application/x-www-form-urlencoded*(这个是form-data默认的enctype属性类型值,数据url?name=“小小”&age=12,这样的格式,在ajax请求里面就是用param来标识,@RquestParam就是用来接受这种数据格式的)

x-www-form-urlencode这个的传参和get里面的params传参是一样的,只是x-www-form-urlencode不接到url后面,后台都是用的@RquestParam来接收;

另一种就是Content-Type=application/json,传输方式是body里面的row,参数是存放在json中的,参数必须要用@RequestBody才能解析出来。

form-data格式一般是用来进行文件上传的。使用表单上传文件时,必须让

表单的 enctype 等于 multipart/form-data,因为该值默认值为application/x-www-form-urlencoded

RequestParam这种方式只用在Content-Type=application/x-www-form-urlencoded这种情况下才能使用,这里的@RequestParam(“iv”)代表传参名称是iv(name=”iv”),且是必填。如果不是必填,可以改成如下形式:sevlet将Body中的key-value转成Param。

上面说的这些都不是绝对的,只是一般规则是这样;

在发get请求的时候如果在formdata里面加了文件,也可以发请求,并且成功,但是文件是接收不到的,并且这些form-data参数不追加到url,只有params参数会被追加到url;

有一个有趣的现象,如果Content-Type=mutipart/form-data,Body中加入参数并且params里面也加了参数一起发过去,并且出现,params参数和for-data参数出现重名,URL后面也就会拼接参数一起,分别发Post请求和post请求,重名的参数只取params里面的;

如果Content-Type=application/x-www-form-urlencoded和params参数一起发送,如果是String类型,则两个值会被拼接,其他类型取的是params的参数。

RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的 数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。,没有@RequestBody修饰直接写实体类作为参数,后台是接收不到Json字符串的,只能通过参数form-data里面的param接受

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值