REST到底是什么
REST是Web服务的一种架构风格,轻量级、跨平台、跨语言的架构设计。REST是一种设计风格。它不是一种标准,也不是一种软件,而是一种思想。
REST 架构的主要原则
网络上的所有事物都可被抽象为资源(Resource)
每个资源都有一个唯一的资源标识符(Resource Identifier)
同一资源具有多种表现形式(xml、json等)
对资源的各种操作不会改变资源标识符
所有的操作都是无状态的(Stateless)
符合REST原则的架构方式即可称为RESTful
RESTful是什么
RESTful对应的中文是 REST式的。
RESTful Web Service是一种常见的REST的应用,是遵守了REST风格的web服务。
REST式的web服务是一种ROA(面向资源的架构)
资源操作
http://example.com/users/
GET : 获取一个资源
POST : 创建一个新的资源
PUT : 修改一个资源的状态
DELETE : 删除一个资源
资源展现
XML
JSON
……
http响应状态码
PUT、DELETE表单提交
默认情况下,PUT和DELETE请求是无法提交表单数据的。
解决方案:在web.xml中配置Spring提供的过滤器解决。
<!-- 默认情况下,PUT请求是无法提交表单数据的,需要在web.xml中添加如下过滤器解决 -->
<!-- 此过滤器只能解决PUT请求问题 -->
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 将POST请求转化为DELETE或者PUT请求时,要用_method指定真正的请求参数 -->
<!-- 此过滤器可以解决DELETE或者PUT请求问题,只是需要加额外的请求参数:_method = "DELETE" 或 "PUT" -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>