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, 用户不用每次刷新整个页面,所以可以有效的记录上下文。

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

CloudCone(12.95美元/月CN2 GT线路,KVM架构1 Gbps带宽

整理一下CloudCone商家之前推送的闪购VPS云服务器产品,数量有限,活动推出可能很快机器就售罄了,有需要美国便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开发的主机系统面板,CloudCone主要销售美国洛杉矶云服务器产品,优势特点是...

BuyVM迈阿密KVM上线,AMD Ryzen 3900X+NVMe硬盘$2/月起

BuyVM在昨天宣布上线了第四个数据中心产品:迈阿密,基于KVM架构的VPS主机,采用AMD Ryzen 3900X CPU,DDR4内存,NVMe硬盘,1Gbps带宽,不限制流量方式,最低$2/月起,支持Linux或者Windows操作系统。这是一家成立于2010年的国外主机商,提供基于KVM架构的VPS产品,数据中心除了新上的迈阿密外还包括美国拉斯维加斯、新泽西和卢森堡等,主机均为1Gbps带...

Hostodo:$34.99/年KVM-2.5GB/25G NVMe/8TB/3个数据中心

Hostodo在九月份又发布了两款特别套餐,开设在美国拉斯维加斯、迈阿密和斯波坎机房,基于KVM架构,采用NVMe SSD高性能磁盘,最低1.5GB内存8TB月流量套餐年付34.99美元起。Hostodo是一家成立于2014年的国外VPS主机商,主打低价VPS套餐且年付为主,基于OpenVZ和KVM架构,美国三个地区机房,支持支付宝或者PayPal、加密货币等付款。下面列出这两款主机配置信息。CP...

restful为你推荐
方便快捷Win10有哪些方便快捷的操作小技巧注册电子邮件电子邮箱怎么注册呢最好的电脑操作系统电脑什么操作系统最好解码器有什么用监控解码器是指什么?网络黑科技华为有哪些黑科技?qq空间播放器代码qq空间免费播放器代码宽带包月宽带包年包月费是怎么回事宽带天线为什么我家装了宽带有4个无线信号?网站建设的内容企业网站建设一般包含了哪些内容?sqlSQL是什么意思
抗投诉vps主机 godaddy域名解析 2019年感恩节 服务器评测 dreamhost 美国主机网 php主机 debian6 tightvnc ev证书 个人免费空间 免费个人空间申请 193邮箱 建立邮箱 南通服务器 网络空间租赁 中国电信宽带测速网 hdd metalink 电信主机 更多