【重难点】【SpringMVC 01】SpringMVC和Spring是什么关系、SpringMVC底层实现流程、GET、PUT、POST、DELETE的区别

【重难点】【SpringMVC 01】SpringMVC和Spring是什么关系、SpringMVC底层实现流程、POST、GET、PUT、DELETE方式的区别

一、SpringMVC和Spring是什么关系

在框架的使用中,Spring 类似于一个具有多种特性(IOC、AOP等),也可以说是多种功能模块的应用平台,并且可以与其它一些优秀并流行的开源框架进行快速地整合。在前几年,MVC 是一个非常好的写作模式,能够有效降低代码的耦合度,从架构上能够让开发者明白代码应该写在哪里,而 SpringMVC 就是建立在 Spring 应用平台之上的 MVC 模型

Spring 和 SpringMVC 是父子容器关系

Spring 整体框架的核心思想是容器,用来管理 Bean 的生命周期,而一个项目中会包含很多容器,并且它们分上下层关系。目前最常用的一个场景是在一个项目中导入 Spring 和 SpringMVC 框架,而 Spring 和 SpringMVC 其实就是两个容器,Spring 是父容器,SpringMVC 是子容器,Spring 父容器中注册的 Bean 对 SpringMVC 子容器是可见的,反之则不行

按照官方文档的推荐,根据不同的业务模块来划分不同的容器中注册不同的 Bean。SpringMVC 主要就是为我们构建 WEB 应用程序,因此 SpringMVC 子容器用来注册 WEB 组件的 Bean,如控制器、处理器映射、视图解析器等。而 Spring 用来注册其它 Bean,这些 Bean 通常是驱动应用后端的中间层和数据层组件

二、SpringMVC底层实现流程

在这里插入图片描述

三、GET、PUT、POST、DELETE的区别

HTTP 定义了与服务器交互的不同方法,最基本的是 GET、POST、PUT、DELETE

GET 请求会向数据库发送获取数据的请求,从而获取信息,该请求就像数据库的 SELECT 操作一样,只是用来查询数据,不会影响数据的内容

与 GET 不同的是,PUT 请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的 UPDATE 操作一样,用来修改数据的内容,但是不会增加数据的种类

POST 请求与 PUT 请求类似,都是向服务器端发送数据的,但是该请求会改变数据的种类等资源,就像数据库的 INSERT 操作一样,会创建新的内容。几乎目前所有的提交操作都是用 POST 请求

DELETE 请求顾名思义,就是用来删除某一个资源的,该请求就像数据库的 DELETE 操作一样

GET 请求和 POST 请求的区别

  • GET 参数通过 URL 传递,POST 放在 RequestBody 中
  • GET 安全性不如 POST,因为参数直接暴露在 URL 上
  • 对于参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制
  • GET 请求在 URL 中传送的参数是有长度限制的,而 POST 没有
  • GET 请求,浏览器会把 header 和 data 一并发送,服务器响应并返回数据。而 POST 请求,浏览器回先发送 header,服务器响应,浏览器再 发送 data,服务器响应并返回数据。但是不是所有浏览器都会发送两次,Firefox 就只发送一次

PUT 请求和 POST 请求的区别

在 HTTP 中,PUT 被定义为幂等的方法(GET、DELETE 也是),而 POST 不是幂等的

  • 幂等:数学中的一个术语,对于单个输入或者无输入的运算方法,如果每次都是同样的结果,则是幂等的。也就是说,如果一个请求重复执行多次,产生的效果是一样的,那就是幂等的。GET 请求,无论你查询多少次,数据库中的数据都不会变化。PUT 请求,无论你更新多少次,最终结果都是同一条数据发生变化,其他数据并没有变化。DELETE 请求,无论你删除多少次,最终结果都是你指定的那条数据被删除,其他数据并没有变化。POST 请求,你每新增一次,数据库中就会多一条数据

PUT,用于向指定的 URL 传输更新资源,是幂等的。比如说修改密码,无论提交多少次,每次都是更新同一个用户的密码,只是覆盖了原来的值

POST,可以更新或者创建资源,是非幂等的。在用户注册时,每次提交都是创建一个新的用户账号

因此,如果多次请求会导致最终结果不一样,就使用 POST,否则用 PUT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

313YPHU3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值