什么是RESTFUL?REST的请求方法有哪些,有什么区别?
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【 什么是RESTFUL?REST的请求方法有哪些,有什么区别?】 大家好,我是IT修真院上海分院第3期学员,一枚正直善良的java程序员,今天给大家分享一下,修真院java任务中的一个知识点:什么是RESTFUL?REST的请求方法有哪些,有什么区别? restFul是符合rest架构风格的网络API接口,完全承认Http是用于标识资源。restFul URL是面向资源的,可以唯一标识和定位资源。 对于该URL标识的资源做何种操作是由Http方法决定的。 rest请求方法有4种,包括get,post,put,delete.分别对应获取资源,添加资源,更新资源及删除资源. 如何编写符合rest架构风格的restful? 1.URL中不可出现动词 2.URL能够唯一地标识单个或一类资源 3.通过Http动词去操作URL标识的资源(get(获取),pst(添加),put(更新),delete(删除)) 错误写法示例
错误写法 该网络API接口URL中使用了动词,并没有做到只标识和定位资源 正确写法示例
正确写法 该网络API接口URL仅标识和定位资源,通过Http方法Post表明是一个添加资源的处理器 REST请求方法解析 GET get方法在Rest中主要用于获取资源,能够发送参数,不过有限制,且参数都会以?开头的形 式附加在URL尾部
get参数 因为参数信息会完全暴露,因此是不推荐发送重要信息的。get方法产生一个tcp数据报一次发送完毕。 规范的get方法处理器应该是幂等的,也就是说对一个资源不论发送多少次get请求都不会更改数据或造成破坏。 应该在编写处理器的时候保证幂等从而提高安全性 POST post方法在Rest请求中主要用于添加资源,参数信息存放在请求报文的消息体中相对安全,且可发送较大信息 post因为参数信息存在方消息体中相对安全,一般用于发送重要数据,且post产生两个tcp数据报需要发送两次完成 对于get和post的本质区别该博客写的非常好 规范化的post方法处理器是不幂等的,因此如果用户重复对一个资源进行post应该在处理器中做出限制和处理保证对数据不造成破坏和更改 从而提高安全性. PUT put方法在Rest中主要用于更新资源,因为大多数浏览器不支持put和delete,会自动将put和delete请求转化为get和post. 因此为了使用put和delete方法,需要以post发送请求,在表单中使用隐藏域发送真正的请求。 put方法的参数是同post一样是存放在消息中的,同样具有安全性,可发送较大信息。 put方法是幂等的,对同一URL资源做出的同一数据的任意次put请求其对数据的改变都是一致的。比如更新/student/2的name值为bobdylan 不论提交该请求多少次,/student/2资源的name值会于提交一次请求无异 DELETE Delete在Rest请求中主要用于删除资源,因为大多数浏览器不支持put和delete,会自动将put和delete请求转化为get和post. 因此为了使用put和delete方法,需要以post发送请求,在表单中使用隐藏域发送真正的请求。 Delete方法的参数同post一样存放在消息体中,具有安全性,可发送较大信息 Delete方法是幂等的,不论对同一个资源进行多少次delete请求都不会破坏数据 常见问题 浏览器自动转化PUT和DELETE为GET和POST,容器找不到对应的处理器报错 rest风格规定URL标识资源,使用Http的四个方法对资源进行操作。但在浏览器发送请求时会自动将put和post 转化为get和post.这样rest风格就成了鸡肋,且发送请求会报错说找不到get方法或post方法。 为什么不支持delete和put方法是因为html4官方在表单中仅支持get和post方法,忽略了Put和Delete以及其他Http方法. 尽管在html5和一些新的浏览器支持所有的http方法,但不可能所有用户都使用最新的浏览器。 解决方案 1.首先第一种是前端人员通过ajax发送,因为不懂前端所以不详述 2.通过在form表单中使用隐藏域在服务器端配置过滤器来发送真实请求 3.使用Spring的sf:form表单来提交 第一种就不详述了 第二种在编码实战中进行演示 第三种方法因为资料不全,是在Spring实战这本书中看到的,自己尝试实现失败了。见Spring实战这本书305页 今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~ 技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。 这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~我的邀请码:16318412,或者你可以直接点击此链接:http://www.jnshu.com/login/1/16318412 作者:埋着头向前走寻找我自己 链接:https://www.jianshu.com/p/dfe3077ddbcd 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。 更多内容,可以加入IT交流群565734203与大家一起讨论交流 这里是技能树·IT修真院:,初学者转行到互联网的聚集地 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |