@RequestParam、@RequestBody、Post、Get请求,一篇文章解释透彻!!!

一、http报文格式:

HTTP的请求报文包括:请求行(request line)、请求头部(header)、空行 和 请求数据(request data) 四个部分组成。

请求行包括: 请求方法,URL(包括参数信息),协议版本这些信息(GET /admin_ui/rdx/core/images/close.png HTTP/1.1)

请求头部(Header)是一个个的key-value值,比如

  • Accept-Encoding: gzip, deflate
  • User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)

空行(CR+LF):请求报文用空行表示header和请求数据的分隔

请求数据GET方法没有携带数据, POST方法会携带一个body

详细解释访问:https://blog.csdn.net/zx_emily/article/details/83024065

二、http请求分类

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。本篇文章我们只介绍POST和GET.主要从POST和GET的区别上介绍。

1、请求方式

GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头<request-line>中),以?分割URL和传输数据,多个参数用&连接;例如:login.action?name=hyddd&password=idontknow;GET提交的数据会在地址栏中显示出来;

POST提交:把提交的数据放置在是HTTP包的包体<request-body>中;而POST提交,地址栏不会改变

2、数据长度

GET数据长度:因为特定的浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。因此对于GET提交时,传输数据就会受到URL长度的限制。

POST数据长度:由于不是通过URL传值,理论上数据不受限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置,比如后台采用tomcat时,如果数据过长,超过了tomcat的长度限制就会报错。

3、安全性

POST的安全性要比GET的安全性高。

三、@RequestParam和@RequestBody

我们了解了http的格式和请求方式以后,来看看@RequestParam和@RequestBody。

这两个注解主要时用来区分后台采用什么方式接受前端参数的,之所以跟http请求放到一块,是希望更深刻的理解各种请求方式和对应的参数接受方法。

详细访问这一篇:https://blog.csdn.net/nihaoa50/article/details/86293715

还有这一篇:https://blog.csdn.net/weixin_38004638/article/details/99655322

四、URL详解:

https://www.cnblogs.com/yaoteng/p/11171039.html

五、总结:

1、后台使用注解:

GET:参数放到URL中,后台使用@RequestParam接收。GET请求不能用@RequestBody来接收参数(不严谨,符合绝大部分情况)

POST:区分header类型,这里只分析两种类型。

(1). application/x-www-form-urlencoded(默认类型)

如果不指定其他类型的话, 默认是x-www-form-urlencoded, 此类型要求参数传递样式为 key1=value1&key2=value2

(2). application/json

更适合传递大数据的形式, 参数样式就是json格式, 例如{"key1":"value1","key2":[1,2,3]}等.

2、不使用注解的情况:

(1)前端以form表单的形式提交数据:
—后端可以使用一下方式接收数据:
对象(不需要加注解,属性名和前端参数名一致)
Map(不需要加注解,属性名和前端参数名一致)
基本类型(添加@RequestParam("")注解,不加注解底层通过IO流读取磁盘中class文件,反编译获取属性名,效率极低)
集合(添加@RequestParam("")注解)

(2)ajax发送请求与后台接收

https://www.cnblogs.com/ooo0/p/10535278.html

如果感觉那么复杂,记不住,直接来这个,通吃!!!

https://blog.csdn.net/Xiaowu_First/article/details/94363183

持续更新...

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值