1.Restful是什么?
Restful架构,是一个符合REST的约束条件和原则的架构,也可以说是一套API规范。
REST即Representational State Transfer,译为表述性状态转移。
2.Restful内容?
首先让我们列举几个关键词
资源、URI、URL设计、状态码
2.1 资源
资源既包括实体,也包括抽象概念,能被利用的事物便是资源。如黄金的价值、身份信息等。
2.2 URI
URI全称Uniform Resource Identifier,译为统一资源标识符。这是一个资源唯一的标识,就像一个人的身份证。想要获取这个资源的信息,访问它的URI就可以。因此,URI的设计也要符合一定规范。如下:
- 使用名词,尽量用复数,如/names
- 使用嵌套表示关联关系,如/names/bob
- 使用_或-来让URI可读性更好,如/news/1/china-car;使用?用来过滤资源,通常对应的是一些特定条件的查询结果或算法运算结果,如 /news/12/car/1,应修改为 /news/12?car=1;
2.3 URL 统一资源定位器 (Uniform Resource Locator)客户想对数据操作(增删查改),就必须涉及URL且使用正确的HTTP方法,如GET、POST、PUT、DELETE。注意,客户端发出的数据操作指令都是"动词 + 宾语"的结构。就是阅读书籍,这种阅读+书籍的动词+宾语结构,这个宾语就是URL。
- 这里四个动词均为HTTP动词,GET:从服务器取出资源(一项或多项),POST:在服务器新建一个资源,PUT:在服务器更新资源(客户端提供改变后的完整资源),DELETE:从服务器删除资源。
- 这里对URI和URL作一个说明,URI是以一种抽象的,高层次概念定义统一资源标识.。URL是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。如URL是http://zhidao.baidu.com/question/123.html,其中URI是/question/123.html,百度的服务器把http://zhidao.baidu.com/制作成了虚拟路径的根。
2.4 状态码
客户每一次请求,服务器就必须给出回应。HTTP协议-响应,组成格式:状态行、消息报头、响应正文。
-
状态行,格式:HTTP-Version Status-Code Reason-Phrase CRLF,也就是HTTP版本号 状态号 原因描述 举例:HTTP/1.1 200 OK
-
常用状态码:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求
因此状态码命名为一个三位数,分几类,分别是
1xx:相关信息
2xx:操作成功
3xx:重定向
4xx:客户端错误
5xx:服务器错误