restful什么是RESTful Web Service

restful  时间:2021-08-29  阅读:()

restful哪种实现方式性能最好

1. 基于RESTful 的几种实现 1.1. Rails Ruby on Rails是新兴的敏捷Web开发框架,在动态语言Ruby的支持下,Rails以新鲜的视角告诉我们Web开发是简单而快乐的。

Rails对 RESTful Web Service的开发作了极大的封装和简化,这对开发人员来说是一个62616964757a686964616fe78988e69d8331333363373763强大的工具。

而且即将发布的Rails 2.0将全面基于REST。

1.2. Axis2 Apache Axis2是传统的Java Web Service框架Axis的下一代版本。

从最初的Apache Axis和Apache SOAP到目前的Axis2,经历了大量变革和发展。

相对以前的版本,Axis2更灵活、更高效、更简单。

作为Java端官方和传统Web Service框架,在REST与SOAP的硝烟弥漫、战火纷飞的状况下,Axis2尝试同时支持SOAP和REST,采用了WSDL2.0中将REST 与Web服务结合的工作成果。

1.3. Django Django是基于python语言的敏捷Web和Web服务开发框架,它的设计与Rails十分类似,只不过简化和封装稍少一些。

1.4. JSR 311: JAX-RS JAX-RS(JSR 311,Java API for XML-RESTful Web Services)是基于annotation的实现方式,我们通过annotation的方式把一个java class标注成RESTful web service,并把它的方法标注成HTTP的CRUD。

相关的annotation有@path @Produces@GET @POST @DELETE @PUT @PathParam等,对java开发人员在使用起来比较方便。

目前已经有很多现成的实现,比如Jersey Apache CXF JBoss RESTEasy 1.5. 其他支持RESTful的Java框架 Restlet(/) Cetia4(/) Apache Axis2(/axis2/) sqlREST(/) REST-art(/) RESTEasy的性能要好于 Jersey,无论哪种嵌入式JEE容器。

Jersey+Grizzly2和Jersey+Jetty, dropwizard性能差别不大 dropwizard底层实际是Jersey+Jetty,性能结果也和Jersey+Jetty一样 ty ty3)的结果并没有优于RESTEasy+undertow.这出乎我的意料,可能CPU和Memory占用上会好一些 ty4的性能远远低于ty3,这出乎我的意料。

或许因为Netty线程池的改变。

ty的性能远远高于其它框架,一方面是由于没有http router的逻辑,另一方面也显示了Netty框架的优秀。

如果不是实现很复杂的路由和很多的Service,不妨使用纯Netty实现高性能。

Spring Boot太厚重了,使用Spring MVC的语法,性能只有Jersey的一半。

Vert.x底层使用Netty,可以使用Java 8 Lambda语法,也提供了其它语言的支持,但是性能看起来不是太好,而且随着并发量增大吞吐率也随之下降。

什么是RESTful Web Service

1. 什么是Restful 其实早在web service概念产生前就有了restful的概念,或者说restful是和Http一起诞生的。

可以参阅 Roy Fielding 的论文“Architectural Styles and the Design of Network-based Software Architectures”, 我本身并没有读过。

Restful的意思是‘宁静的’,你可以理解为‘简约而不简单’,或者‘和谐的’。

一个协议只有足够的简约才有扩展性和生命力,复杂的东西往往伴随的是大量bug和规模膨胀后的不可控。

Restful就是Http的本质,仅仅是一个资源URI,和Get,Post,Put,Delete四种操作。

一切Web的行为皆源于此。

所以早期的网站,或者说是静态的网站的都是Restful的,如果广义的把浏览器获取web page当做一种web service的话,那么他们都提供了Restful Web Service。

所以Restful并不是个陌生的概念,更不是个新的概念,只不过是一直被忽略了。

一样东西之所以被忽略,因为没有对立面, 或者说没有可比较的东西。

世界上的概念都是相对的,有了丑才有美,有了胖才有瘦。

同样当仅仅只有restful的时候,便很少有人真正了解restful的意思。

直到有一天,restful的原则被打破,世界上出现了非restful的web行为,我们可以把它称做‘RPC-style’的web service。

2. RPC-style RPC是个大家都很熟悉的东西,remote procedure call,就是说我要调用其他机器上的程序就象调用我本机的函数一样。

早期的做法开个socket端口,把参数传过去,然后执行完再通过socket把结果传回来。

这样的缺点是就是不同的解决方案的传参数和结果的协议不同,大家之间没发通用,还有就是可能无法穿越防火墙。

直到XML技术诞生,用XML来规范接口,并且XML文档本身就是纯文本可以方便的通过Http端口传输,这样就大大的方便了在web互相之间的调用。

于是Web Service的概念诞生了,而这种Web Service是‘RPC-style’的。

3. Http 顺便聊一下Http协议,Http诞生就是为了进行Web访问,用来传输Html文档的。

不过他的能力远远大于此。

Http本身就是个envelope协议,他并不管envelop里面装的是什么,所以其实你可以通过http传输任意数据(图片,音乐),只要可以将它编码成文本(如用base64)。

Http本身规定了4种操作,可是他并没有强制服务器真正的行为。

比如你通过Http发出的Get指令,服务器在收到这个指令后可以做些完全和Get不相关的事情。

Http的灵活性带来了很多好处,但同时也带来了副作用,Web不再restful,变的有点小乱。

4. ROA 其实RPC-style和Restful看待事物的角度是不同的,大家都说Restful是一种RO,即面向资源的,那么RPC-style应该仍难是传统的OO,即面向对象的。

对于RPC-style而言,Server就是一个对象,这个对象有许多的属性和方法,我们通过http传递参数来调用这些方法,这里http仅仅被用来做为一个传递者,request的真正含义皆在soap envelop中。

对于Restful而言,Server就是个资源的集合,里面有web pages,web services,或其他资源,对于资源的操作是固定的。

我们可以用http象访问网页一样访问web service。

对于Web而言,似乎ROA这种架构更能保持web访问的一致性,也更简单。

5. Ajax Ajax出现的初始动机就是我们可以仅仅刷新部分网页,这样更快,也更合理,不然每次都要刷新整个网页。

同时,Ajax的出现也为遵守Restful原则提供了一种很好的solution。

Restful很重要的原则是无状态性,即服务器不会保存http request的上下文。

这是很必要的,否则当用户很多时,服务器的负荷会爆掉的。

我们应该在客户端记录request上下文,然后每次发给服务器。

Ajax出现前,每次request都会刷新这个页面,所以很难记录之前request的上下文,现在有了Ajax, 用户不用每次刷新整个页面,所以可以有效的记录上下文。

所以可以比较简单的完成胖客户端-瘦服务器的架构。

欧路云(22元) 新增美国Cera线路VPS主机且可全场8折

欧路云(oulucloud) 商家在前面的文章中也有陆续介绍过几次,这不今天有看到商家新增加美国Cera线路的VPS主机,而且有提供全场八折优惠。按照最低套餐最低配置的折扣,月付VPS主机低至22元,还是比较便宜的。不过我们需要注意的是,欧路云是一家2021年新成立的国人主机商,据说是由深圳和香港的几名大佬创建。如果我们有介意新商家的话,选择的时候谨慎且月付即可,注意数据备份。商家目前主营高防VP...

Hostigger不限流量VPS年20美元

Hostigger 主机商在前面的文章中也有介绍过几次,这个商家运营时间是有一些年份,只不过在我们圈内好像之前出现的次数不多。最近这段时间商家有提供不限流量的VPS主机,逐渐的慢慢被人认识到。在前面的介绍到他们提供的机房还是比较多的,比如土耳其、美国等。今天看到Hostigger 商家居然改动挺大的,原来蛮好的域名居然这次连带官方域名都更换掉去掉一个G(Hostiger )。估摸着这个域名也是之前...

Sharktech10Gbps带宽,不限制流量,自带5个IPv4,100G防御

Sharktech荷兰10G带宽的独立服务器月付319美元起,10Gbps共享带宽,不限制流量,自带5个IPv4,免费60Gbps的 DDoS防御,可加到100G防御。CPU内存HDD价格购买地址E3-1270v216G2T$319/月链接E3-1270v516G2T$329/月链接2*E5-2670v232G2T$389/月链接2*E5-2678v364G2T$409/月链接这里我们需要注意,默...

restful为你推荐
移动开发女生学移动应用开发怎么样混乱模式混乱模式的对应一览化学键理论关于化学键的知识零终端银行卡圈存是什么意思网络黑科技华为有哪些黑科技?网络黑科技什么防封软件,都是假的,没有一个是真的,大家不要受骗!电子商务数据分析女生学商务数据分析与应用以后可以做什么工作宽带天线如何让无线宽带信号更好?md播放机寻找MD格式的视频文件播放器2000w数据怎么打开华为手机怎么打开移动数据
私服服务器租用 花生壳免费域名申请 重庆服务器托管 站群服务器 名片模板psd godaddy域名转出 网通代理服务器 dd444 东莞数据中心 100mbps 上海服务器 web服务器搭建 域名dns 免费php空间 好看的空间 .htaccess windows2008 sonya winserver2008下载 卡巴斯基免费版下载 更多