RESTful是什么
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。对于这个概念比较抽象不具体,实际上对于RESTful我更愿意把它称为web开发中表现层的设计模式或者一直设计风格。而要理解RESTful则要看RESTful的英文名(Representational State Transfer),中文的翻译是“表现层的状态转化”,所以要理解其含义要从:表现、状态、资源(因为网站就是以资源为交互的对象)
RESTful三方面解析
资源:网络上的的实体,或者说是网络上的的具体信息。它可以是一段文本、一张图片、一种服务等,总之就是一个具体的实在。你可以用一个URL(统一资源定位符)指向它,每种资源对应一个特定的URL。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。
状态转化:从RESTful中对于资源的定义可以看出,资源本身是静态的或者说没有状态的,那么客户端要对资源进行怎样的交互,或者说怎样的操作,新建资源对象(POST)、删除资源(DELETE)、获取资源(GET)、更新资源(UPDATE)而这些状态信息资源本身不具备,这些信息都要有客户端通过HTTP协议来告知服务器,从而让服务器知晓客户端的交互动作。
表现层:其实我的理解就是资源的存在形式,比如是文本、还是图片、还是视频等,而这些信息也要有客户端通过HTTP的Content-Type或者Accpet请求头来告知服务器。
总结:
1)每个URL代表一种资源
2)客户端和服务器之间,传递这种资源的某种表现层
3)客户端通过四个HTTP动词,对服务器端资源进行具体的操作,从而实现"表现层状态转化"。
落实开发
所以RESTful落实到开发上就是如下的一些规则:
1)URL中不应该有动词
2)要设置Content-Type响应头告知资源的类型
3)通过HTTP请求方式实现对应的操作