GET和POST请求发送和服务端接收如何解析

GET请求

  1. 请求端:GET发送请求的时候,是把要传递的参数直接以键值对的方式用?拼接在URL后面,参数和参数之间用&来拼接。如:localhost:8080/test?a=1&b=2,就是把a和b这两个参数显式的拼接在了URL后面。发送请求的时候,浏览器会对后面拼接的参数部分进行URLencode编码,一般是使用浏览器默认的编码方式(ISO8859-1或UTF-8)。
  2. 服务端:服务端接收GET请求的时候,Tomcat会采取默认的解码方式(一般为ISO8859-1或UTF-8)来进行URLdecode来解码(这里),然后解析获得拼接在URL后的参数(一串字符串)。把拼接在URL后的参数解析出来后,传给SpringMVC,SpringMVC会将该字符串和方法中的形参绑定注入。也就是方法中收到前端传递的参数,然后调用业务逻辑处理,并且返回响应的报文。

POST请求

  1. 请求端:POST请求的时候,参数是被放在了请求体(RequestBody)中,这时候可以指定参数内容类型(Content-Type),若是不指定Content-Type,那么浏览器会默认使用application/x-www-form-urlencoded类型,这种类型表明参数以键值对的方式放在了请求体中,并且用urlencoded编码,编码后将请求发送。还有其他的Content-Type,比如常用的application/json,这种Content-Type表示在请求体中参数是用JSON编码然后发送的。
  2. 服务端:在服务端这,Tomcat根据接收到请求头中的Content-Type来决定对请求体中的内容怎么解码,然后把解码后的字符串发送给SpringMVC,然后SpringMVC也会根据请求的Content-Type来确定怎么对解码后的字符串和方法中的形参来绑定。

总结:

GET和POST区别

  1. GET没有请求体,参数显式拼接在URL后面。POST请求有请求体,参数放在请求体中。
  2. GET请求头中没有Content-Type,所以GET不能指定参数内容格式。POST请求有Content-Type来指定请求体中传输的参数内容是用什么编码的,参数内容的格式是什么。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值