1 get(默认的请求方式):数据跟在资源路径下(也就是我们在后端使用@RequestMapping, @GetMapping 映射下的初始路径)
如图所示:test? +请求数据(查询参数)
@RequestMapping("/test")
public String ff(User user ,MultipartFile file) {
System.out.println("user="+user);
System.out.println("file="+file.getSize());
return "收到数据";
}
2 post : 发送的数据在请求体(requestbody)
补充:我们常使用@RequestBody注解 在请求体中招发送的数据
注意:enctype属性 常常和post 搭配使用
举个例:我们上传文件时需要使用enctype属性,是向服务器发送数据
3 get 请求和post请求的区别
1 发送数据位置不同
原因:
上面介绍的。get:数据是跟在路径下的。也就是我们后面要了解的请求行中;post:数据是在请求体中
2 应用场景不同
原因:
1 get:主要是从服务器中,获得数据。;post:主要是向服务器中提交数据。
3 后端接收方式不同
原因:
1 发送get请求时,需要使用@GetMapping注解映射
2 发送post请求时,需要使用@PostMapping注解 映射
4 安全性不同
原因:
1 发送get请求时,请求数据是直接呈现地址栏上,容易被捕捉,安全性方面较弱。
如下图所示:我标红的就是****网址中请求数据(该数据使用键值对的方式:k=v)
2 发送post请求时,请求的数据是在request body请求体中,不会在地址栏上显示,安全性比较高然而,需要注意的是,即使使用POST请求,如果不使用HTTPS加密,报文正文仍然是明文传输,可能仍然面临被截获和读取的风险。