SpringBoot中四种请求区别和应用
在开发过程中,我们需要接受前端html中的请求来响应后端的数据,在SpringBoot中符合rest风格的编码有四种的请求方式,post、get、put、delete。下面来浅谈四种请求的区别。
POST请求
首先Post请求是http请求的一种。HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。 最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单。
案例
<form th:action="@{/emp}" method="post">
</form>
@PostMapping("/emp")
public String addEmp(Employee employee){
return "redirect:/emps";
}
POST请求是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容。几乎目前所有的提交操作都是用POST请求的。
特点:
-
post提交数据相对于get的安全性高一些。(注意:抓包软件也会抓到post的内容,安全性要求高可以进行加密)
-
传递数据量大,请求对数据长度没有要求。
-
请求不会被缓存,也不会保留在浏览器的历史记录中。
-
用于密码等安全性要求高的场合,提交数据量较大的场合,如上传文件,发布文章等。
-
POST方式提交数据上限默认为8M(可以在PHP的配置文件post_max_size选项中修改)
GET请求
GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。 常见发起GET请求的方式有:URL 、src/href、表单(form)。
案例
http://www.yundama.com/index/login?username=123456&password=uivhHvujjg&utype=1&vcode=gba
@GetMapping("/login")
public String list(Model model){
return "emp/list";
}
特点:
-
get方式在url后面拼接参数,只能以文本的形式传递参数。
-
传递的数据量小,4kb左右(不同浏览器会有差异)。
-
安全性低,会将信息显示在地址栏。
-
速度快,通常用于对安全性要求不高的请求。
PUT请求
PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等,也就是说无论进行多少次PUT操作,其结果并没有不同。
案例
<form th:action="@{/emp}">
<!--发送put请求修改数据-->
<input type="hidden" name="_method" th:value="put">
</form>
@PutMapping("/emp")
public String updateEmployee(Employee employee){
return "redirect:/emps";
}
DELETE请求
DELETE请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的delete操作。
案例
<form id="deleteEmpForm" >
<input type="hidden" name="_method" value="delete"/>
</form>
@DeleteMapping("/emp/{id}")
public String deleteEmployee(@PathVariable("id") Integer id){
return "redirect:/emps";
}
综上所述,我们可理解为以下:
-
POST /url 创建
-
DELETE /url/xxx 删除
-
PUT /url/xxx 更新
-
GET /url/xxx 查看