从长远来看,一个组织唯一可持续的竞争优势,就是比对手更好更快的【学习能力】。如果你一鼓作气,和我们一起学习到这一章,现在已是深夜。这章内容并不难,例程也很简单,但是很重要。这章会告诉我们,为什么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开