Posts Tagged "restful"

一个周末掌握IT前沿技术之node.js篇<六>:Node.js与客户端模板引擎

窗外阳光明媚,深蓝的天,淡淡的云,还有北归的雁。


我们已经学习掌握了这么多的IT前沿技术元素,那么把他们系统地组织在一起,可以形成什么?学习和理解这一章中的例程,需要用到前面学到的所有知识。


六. Node.js与 客户端模板语言


用JavaScript编写服务器程序有一个很大的好处,那就是因为网页客户端程序也使用JavaScript,所以服务器和客户端可以相互重用部分数据处理的逻辑。比如说,第三章中曾使用过的模板引擎nTenjin,我们将它引入到网页之中,这样的话我们的网页客户端也具有了模板的处理能力。

在第三章中,我们已经可以在服务端处理网页模板并实现类似PHP的动态网页功能。为什么这里还要让网页客户端来处理模板呢?那是因为,在现代高性能服务器架构中,我们希望前端服务端所做的逻辑处理越少越好。一些面向客户端的计算,包括一些图片处理、文字处理、样式处理等,我们希望由客户端来完成。面向大数据的计算则交给云端完成。甚至于我们希望,前端服务端只提供高速的动态数据呈现服务。下图就是我们本章要实现的高性能服务器架构:

在第三章的例程5中,服务端JavaScript逻辑解析nTenjin模板,并根据传入的数据生成HTML动态网页。我们要让解析模板和生成网页的计算在网页客户端中完成,服务器需要告诉网页,模板是什么,给模板传入的数据是什么。下面我们搭建一个RESTful-API服务器为网页客户端的Ajax请求提供模板和数据。


6.1 RESTful-API …
Read the rest of this entry »
 

一个周末掌握IT前沿技术之node.js篇<四>:Node.js与Restful API

从长远来看,一个组织唯一可持续的竞争优势,就是比对手更好更快的【学习能力】。如果你一鼓作气,和我们一起学习到这一章,现在已是深夜。这章内容并不难,例程也很简单,但是很重要。这章会告诉我们,为什么Node.js更适合现代服务器架构。让我们喝杯咖啡,把这章学完。

“互联网”越来越是API和服务,而不是网站、应用、和网页。看完上一章,你可能觉得在实现服务器模板方面,Node.js并没有太多超越HTML内嵌式动态网页语言的地方,那么,作为web-service服务器将是Node.js最好的用武之地。我们不准备去深究什么是web-service以及它的各种描述规范。因为现在,我们不用再去深入地了解RPC、SOAP、UDDI、WSDL等等概念,我们只需要知道RESTful就可以了。经过技术的发展,REST(REpresentation State Transfer)作为最优秀的web-service协作规范,简化了客户端和服务器的实现,强大功能,可扩展性好,安全可靠。所以2000年Roy Fielding提出的REST协作规范,已经成为了现在各种网络应用API的普遍原则。开放平台和开源工具都以提供RESTful-API为首要优先级。那么什么是RESTful-API呢?看看能不能理解这个比喻。有一堆兔子围着老狼问,“老狼老狼,几点了?”老狼看看太阳回答,“3点了!”兔子和老狼之间的接口就是RESTful-API。“老狼老狼,几点了?”就是客户端RESTful请求,“3点了!”就是服务器RESTful响应。老狼不管是那只兔子问的,这只兔子问过没问过,这就是无状态性。老狼在天黑以前只能回答兔子的问题,不能干别的,这就是分离性。专业一点的定义应该是这样的:

《REST规范》
总结REST有两个最重要的原则:
1.分离性;交互的客户端和服务器除了RESTful-API没有其他的依赖关系,限制了整个系统的复杂性,促进了各个部分的独立性。
2.无状态性:客户端和服务器之间的交互在请求之间是无状态的,从客户端到服务器的每个请求都必须包含理解请求所必需的信息。

满足上面规范的API接口就是RESTful-API。客户端常常通过HTTP方法(GET、POST、PUT、DELETE等),来发送API请求;服务端常常以JSON数据作为响应。做好web开发,我们必须非常深刻地理解http/TCP/IP协议栈。我们可以通过浏览器访问发送HTTP …

Read the rest of this entry »
 

无觅相关文章插件,快速提升流量