简介 #
常听人说道Web开发中的RESTful架构,但是未曾亲自研究过,现在找到比较完整的学习时间,在网络上查阅了一些文章,得此笔记。文中有不少参考,贴出原文链接以便各位学习。
概述 #
“REST API是一种符合REST架构风格的约束且允许RESTful Web服务的应用编程接口,REST表示变现层状态转换(Representational State Transfer)由计算机科学家 Roy Fielding创建。”这是RedHat上的原句,在阮一峰的日志中有更为详细的介绍,以下内容是我自己的一些综合理解。
正文 #
在理解RESTful架构前先要了解为何要创建这个架构,由于网络技术的发展,很多软件,系统逐渐转移成了Web应用,因此大家会意识到,Web应用也是一种软件。
“Web应用是一种采用客户端/服务器(C/S)模式,建立在分布式体系上,通过互联网通信,具有高延时,高并发等特点。”
这里我认为应该是B/S模式更准确一些,网站开发一般都是使用浏览器访问的。C/S一般是类似QQ或者游戏客户端之类采用的模式,响应速度和用户友好度更佳,但是B/S模式更易拓展,且支持多平台使用。
但是传统意义上软件和网络是有区别的,软件开发更针对于本机IO,文件系统的读写,大多时候也不需要考虑高并发或者网络条件的问题。
而Web开发则大部分时候都是在解决高并发,网络请求这类问题,当然这是在已经按照三层架构或类似开发模型指导下完成了数据在视图和模型间传输的标准以及约束前提之下。
因此现在需要一种适合在网络环境中的软件开发标准,也就是RESTful的提出。
名称 #
“Fielding将他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化"。
如果一个架构符合REST原则,就称它为RESTful架构。
要理解RESTful架构,最好的方法就是去理解Representational State Transfer这个词组到底是什么意思,它的每一个词代表了什么涵义。如果你把这个名称搞懂了,也就不难体会REST是一种什么样的设计。“