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

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

青云互联-洛杉矶CN2弹性云限时五折,9.5元/月起,三网CN2gia回程,可选Windows,可自定义配置

官方网站:点击访问青云互联官网优惠码:五折优惠码:5LHbEhaS (一次性五折,可月付、季付、半年付、年付)活动方案:的套餐分为大带宽限流和小带宽不限流两种套餐,全部为KVM虚拟架构,而且配置都可以弹性设置1、洛杉矶cera机房三网回程cn2gia 洛杉矶cera机房                ...

弘速云(28元/月)香港葵湾2核2G10M云服务器

弘速云怎么样?弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港vps、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统,目前推出全场vps新开7折,...

香港九龙湾(27元) 2核2G 20元 香港沙田

弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港VPS、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统。国庆活动 优惠码:hosu10-1产品介绍...

restful为你推荐
高级工程师证书高级工程师证书是什么样子的,内容是什么格式的? 一般是社会授予还是单位授予?支付宝证书网上证书 支付宝360网络收藏夹360浏览器的网络收藏夹怎么导出啊?零终端ONU终端、e8-c终端、天翼猫三者有什么区别?ldap统一用户认证介绍NIPS是什么认证?信息发布管理系统信息发布系统的构架区别it人物码农是什么意思,码畜、码奴等又是什么意思本地连接断开本地连接老是自动断开是怎么回事?电子商务数据分析什么是电子商务网络数据分析师余额宝客户端我的余额宝是用电脑操作充值的,为什么用手机的余额宝客户端看不到?
广州服务器租用 greengeeks koss evssl证书 win8.1企业版升级win10 国外免费全能空间 刀片服务器是什么 seednet 绍兴电信 流媒体加速 服务器是干什么用的 789 电信宽带测速软件 攻击服务器 云销售系统 移动王卡 apachetomcat 带宽测速 服务器是什么 西部主机 更多