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

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

OneTechCloud(31元),美国CN2 GIA高防VPS月

OneTechCloud发布了本月促销信息,全场VPS主机月付9折,季付8折,优惠后香港VPS月付25.2元起,美国CN2 GIA线路高防VPS月付31.5元起。这是一家2019年成立的国人主机商,提供VPS主机和独立服务器租用,产品数据中心包括美国洛杉矶和中国香港,Cera的机器,VPS基于KVM架构,采用SSD硬盘,其中美国洛杉矶回程CN2 GIA,可选高防。下面列出部分套餐配置信息。美国CN...

香港站群多ip服务器多少钱?零途云香港站群云服务器怎么样?

香港站群多ip服务器多少钱?想做好站群的SEO优化,最好给每个网站都分配一个独立IP,这样每个网站之间才不会受到影响。对做站群的站长来说,租用一家性价比高且提供多IP的香港多ip站群服务器很有必要。零途云推出的香港多ip站群云服务器多达256个IP,可以满足站群的优化需求,而且性价比非常高。那么,香港多ip站群云服务器价格多少钱一个月?选择什么样的香港多IP站群云服务器比较好呢?今天,小编带大家一...

racknerd:美国大硬盘服务器(双路e5-2640v2/64g内存/256gSSD+160T SAS)$389/月

racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...

restful为你推荐
云和数据达内和云和数据这两家培训那家比较好,刚毕业想学点东西,不是很清楚?信息发布管理系统信息发布系统的构架区别怎样下载文件QQ上发过来的文件怎么下载不了it人物IT人员是做什么的`wps表格数据恢复Wps表格怎么恢复数据大数据人才培养聚焦大数据人才 需要哪些技能?网站建设简介网站建设一般都包括哪些内容?有哪些细节是特别需要注意的吗?手机证书申请手机证书申请宽带天线中国电信宽带,无线路由器如何安装。宽带天线电信宽带无线网怎么设置呀 今天刚装的 回家不可以用了
免费申请网站域名 泛域名解析 亚洲大于500m 免费ftp空间 微信收钱 vip购优汇 hostloc 常州联通宽带 江苏双线服务器 raid10 海外空间 lick 谷歌台湾 atom处理器 杭州电信 双11促销 数据湾 第八届中美互联网论坛 优惠服务器 weblogic部署 更多