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

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

水墨云历史黑名单IDC,斟酌选购

水墨云怎么样?本站黑名单idc,有被删除账号风险,建议转出及数据备份!水墨云ink cloud Service是成立于2017年的商家,自2020起开始从事香港、日本、韩国、美国等地区CN2 GIA线路的虚拟服务器租赁,同时还有台湾、国内nat vps相关业务,也有iplc专线产品,相对来说主打的是大带宽服务器产品。注意:本站黑名单IDC,有被删除账号风险,请尽量避免,如果已经购买建议转出及数据备...

JustHost俄罗斯VPS有HDD、SSD、NVMe SSD,不限流量低至约9.6元/月

justhost怎么样?justhost服务器好不好?JustHost是一家成立于2006年的俄罗斯服务器提供商,支持支付宝付款,服务器价格便宜,200Mbps大带宽不限流量,支持免费更换5次IP,支持控制面板自由切换机房,目前JustHost有俄罗斯6个机房可以自由切换选择,最重要的还是价格真的特别便宜,最低只需要87卢布/月,约8.5元/月起!总体来说,性价比很高,性价比不错,有需要的朋友可以...

数脉科技:香港服务器低至350元/月;阿里云CN2+BGP线路,带宽10M30M50M100M

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。数脉香港特价阿里云10MbpsCN2,e3-1230v2,16G内存,1T HDD 或 240G SSD,10Mbps带宽,IPv41个,...

restful为你推荐
计算机网络的定义计算机网络定义的三要素是什么?网络地址分类IP地址是怎样分类的?u盾证书“U盾”和“数字证书”有什么区别?说明书之家网站索尼A200说明书哪里有说明书之家网站哪里有SONY专业摄像机的使用说明书零终端如何打开android命令行终端免费数据采集软件那个软件可以自动每天采集几十个网站的最新信息,并且发布信息到自己的门户网站上信息发布管理系统信息发布系统的功能有哪些?呼叫中心系统方案求呼叫中心设计方案,100坐席,具体需要些什么硬件和软件?qq空间播放器代码qq空间免费播放器代码
域名网站 顶级域名 cn域名 服务器配置技术网 securitycenter 香港vps99idc mediafire下载工具 免费ddos防火墙 网盘申请 湖南服务器托管 个人空间申请 华为网络硬盘 天互数据 vip购优汇 免费个人空间 idc资讯 hkg isp服务商 raid10 西安主机 更多