restful的好处:
轻量,基于http;
看Url就知道要什么,url有很强可读性的,具有自描述性;
看http method就知道干什么,基于http请求的方式不同,对应资源的增删改查;
看http status code就知道结果如何:
服务器向用户返回的状态码和提示信息,常用的有: 200 OK :服务器成功返回用户请求的数据 201 CREATED :用户新建或修改数据成功。 202 Accepted:表示请求已进入后台排队。 400 INVALID REQUEST :用户发出的请求有错误。 401 Unauthorized :用户没有权限。 403 Forbidden :访问被禁止。 404 NOT FOUND :请求针对的是不存在的记录。 406 Not Acceptable :用户请求的的格式不正确。 500 INTERNAL SERVER ERROR :服务器发生错误。
可提供OpenAPI,便于第三方系统集成;
如果提供无状态的服务接口,提高应用的水平扩展性;
资源描述与视图的松耦合;
服务器返回的数据格式一般以xml,json做数据交换;
tip:
web应用下,大部分浏览器只支持get、post方式;
如何在表单提交put/delete请求:
//添加拦截器 <filter> <filter-name>httpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>httpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
//前端如果想发送delete请求,那么需要先发送post请求,在请求参数中携带参数名"_method",value为"delete"; $.ajax({ type: "post", url:url, data: {"contentId": id, "_method": "delete"}, success: function (data) { if (data.status == 0) { alert("成功!"); location.reload(); } else { alert("操作失败!" + data.reason); } } }); //或者表单提交时,增加hidden类型数据: <input type="hidden" name="_method" value="put" />