HTTP参数类型(head,path,query,data)及请求参数的3种方式和各接收参数的注解直接的区别

1.HTTP 请求中4大参数类型的区别

1.请求头参数head

请求头参数顾名思义,是存放在请求头中发送给服务器的参数,服务器通过解析请求头获取参数内容。通常会存放本次请求的基本设置,以帮助服务器理解并解析本次请求的body体。
参数形式如:

Accept-Language : zh-CN,zh;q=0.8,zh-TW;q=0.5,en-US;q=0.3,en;q=0.2

其中 Accept-Language 为参数名称 :号后面紧跟请求的值。

2.路径参数path

路径参数顾名思义,本次请求的资源路径,紧跟请求域名的后面,服务器通过解析路径参数获取资源位置。路径参数是用/分隔的一系列字符串,其意义在于对服务器资源进行统一定位,如:

http://www.madmk.com/office/zhangsan

其中 /office/zhangsan 便是路径参数,其含义可解释为 找办公室里的张三,大多数情况下路径参数会代表服务器真实的文件路径。

3.查询参数query

Query代表请求的参数,URL以?key=value的形式呈现,例如:
http://localhost:8080/api/v1/namespaces?pretty=true中 pretty=true就是query

4.请求体参数body

请求体参数顾名思义,是存放在请求体(在HTTP协议中用于传输客户端向服务器发送的数据的部分)中发送给服务器的参数。请求体参数格式复杂多变,服务器会先根据请求头中的 Content-Type 获取其格式,然后再根据其格式进行解析,常见的格式如下:

Get请求只能传Query参数,POST可以传Query和Body(常用)两种形式的参数。

Query的值只能是一个字符串,不能传递对象类型的参数,如果参数中涉及到了传递对象,就要选择Body传参,一般json等都是Body传参。

2.请求参数的3种方式

1.路径参数:

其中@PathVariabel注解的形参名字要与路径参数形参名字相等
不相等就用 value值来与路径参数名字相等。

2.url地址传参(就是Query请求):url?xxx=abc

如果controller方法中的参数名称跟form中name名称一致,可以不用注解接收参数

get请求只能传query参数,query参数都是拼接在请求地址上的。 post可以传body和query两种形式的参数。

 3.Body类型的(就是Body请求),一般都是前端表单数据和json传给后端的

 

3.关于接收参数,三个注解 @RequestBody、@RequestParam、@PathVariable的区别

  • 区别

    • @RequestParam用于接收url地址传参或表单传参
    • @RequestBody用于接收json数据
      • @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
    • 应用

      • 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
      • 如果发送非json格式数据,选用@RequestParam接收请求参数
      • 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

文章知识点与官方知识档案匹配,可进一步学习相关知识

网络技能树支撑应用程序的协议HTTP协议

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值