RESTful 的下结论。RESTful 的下结论。

1.什么是RESTful?

1.什么是RESTful?

  REST,即Representational State
Transfer的缩写。”(资源的)表现层状态转化”。

  REST,即Representational State
Transfer的缩写。”(资源的)表现层状态转化”。

2.啊是显现层?

2.呀是表现层?

  “资源”具体见出来的花样,叫做它的”表现层”(Representation)。比如,文本可以用txt格式表现,也得以就此HTML格式、XML格式、JSON格式表现,甚至足以使二前进制格式;图片可以为此JPG格式表现,也可就此PNG格式表现。

  “资源”具体见出来的款式,叫做它的”表现层”(Representation)。比如,文本可以用txt格式表现,也得以就此HTML格式、XML格式、JSON格式表现,甚至可以以二前行制格式;图片可以为此JPG格式表现,也堪就此PNG格式表现。

  URI(统一资源定位符)只象征资源的实业,不代表它的款式。严格地说,有些网址最后的”.html”后缀名是未必要之,因为此后缀名表示格式,属于”表现层”范畴,而URI应该只是象征”资源”的位置。它的具体表现形式,应该以HTTP请求的头信息中用Accept和Content-Type字段指定,这点儿只字段才是针对”表现层”的描述。

  URI(统一资源定位符)只象征资源的实业,不代表其的款型。严格地游说,有些网址最后之”.html”后缀名是未必要的,因为是后缀名表示格式,属于”表现层”范畴,而URI应该就表示”资源”的位置。它的具体表现形式,应该在HTTP请求的腔信息中用Accept和Content-Type字段指定,这半独字段才是本着”表现层”的叙述。

3.态转换什么意思?

3.状态转换什么意思?

  访问一个网站,就代表了客户端与服务器的一个交互过程。在这个过程中,势必涉及到数码及状态的转。

  访问一个网站,就象征了客户端和服务器的一个相互过程。在斯历程遭到,势必涉及到数与状态的转变。

   互联网通信协议HTTP协议,是一个无论状态协议。这表示,所有的状态且保留在劳动器端。因此,如果客户端想只要操作服务器,必须通过某种手段,让服务器端发生”状态转化”(State
Transfer)。而这种转化是建立在呈现层以上的,所以尽管是”表现层状态转化”。

   互联网通信协议HTTP协议,是一个无论是状态协议。这代表,所有的状态都封存在劳务器端。因此,如果客户端想如果操作服务器,必须经过某种手段,让服务器端发生”状态转化”(State
Transfer)。而这种转化是起家以表现层以上的,所以即使是”表现层状态转化”。

  客户端用到之伎俩,只能是HTTP协议。具体来说,就是HTTP协议里,四独象征操作方法的动词:GET、POST、PUT、DELETE。它们各自指向承诺季栽基本操作:GET用来获取资源,POST用来新建资源(也足以用于创新资源),PUT用来更新资源,DELETE用来删除资源。

  客户端用到之手段,只能是HTTP协议。具体来说,就是HTTP协议中,四独象征操作办法的动词:GET、POST、PUT、DELETE。它们分别针对许季种植基本操作:GET用来取得资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

  还有几独无常见的基本操作:PATCH(UPDATE):在服务器更新资源(客户端提供反之性能)、HEAD:获取资源的首家数据、OPTIONS:获取信息,关于资源的焉性是客户端好变动的。

  还有几只非广的基本操作:PATCH(UPDATE):在服务器更新资源(客户端提供反的属性)、HEAD:获取资源的状元数据、OPTIONS:获取信息,关于资源的怎么性是客户端可更改之。

  举例:

  举例:

  • GET /zoos:列出所有动物园
  • POST /zoos:新建一个动物园
  • GET /zoos/ID:获取有指定动物园的音
  • PUT /zoos/ID:更新某个指定动物园的消息(提供该动物园的满音讯)
  • PATCH /zoos/ID:更新某个指定动物园的音信(提供该动物园的片信息)
  • DELETE /zoos/ID:删除某个动物园
  • GET /zoos/ID/animals:列出某个指定动物园的有动物
  • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
  • GET /zoos:列出所有动物园
  • POST /zoos:新建一个动物园
  • GET /zoos/ID:获取有指定动物园的音
  • PUT /zoos/ID:更新某个指定动物园的音讯(提供该动物园的一切信)
  • PATCH /zoos/ID:更新某个指定动物园的音(提供该动物园的部分信息)
  • DELETE /zoos/ID:删除某个动物园
  • GET /zoos/ID/animals:列出某个指定动物园的具有动物
  • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

4.总结

4.总结

 

 

  (1)每一个URI代表一样栽资源;

  (1)每一个URI代表一致栽资源;

 

 

  (2)客户端和服务器之间,传递这种资源的某种表现层;

  (2)客户端和服务器之间,传递这种资源的某种表现层;

 

 

  (3)客户端通过四独关键的HTTP动词,对劳动器端资源开展操作,实现”表现层状态转化”。

  (3)客户端通过四单第一的HTTP动词,对劳动器端资源开展操作,实现”表现层状态转化”。

5.规划受到注意事项

5.统筹被注意事项

  URI中永不含动词。坐”资源”表示无异栽实体,所以应该是名词,URI不应生出动词,动词应该放在HTTP协议中。

  URI中并非含动词。因为”资源”表示同样种实体,所以应当是名词,URI不应当有动词,动词应该置身HTTP协议被。

  状态码:

  状态码:

  • 200 OK –
    [GET]:服务器成功返回用户要的数据,该操作是幂等的(Idempotent)。
  • 201 CREATED – [POST/PUT/PATCH]:用户新建或改数据成功。
  • 202 Accepted – [*]:表示一个央都入后台排队(异步任务)
  • 204 NO CONTENT – [DELETE]:用户删除数据成功。
  • 400 INVALID REQUEST –
    [POST/PUT/PATCH]:用户发生之乞求有荒唐,服务器无开展新建或涂改数据的操作,该操作是幂等的。
  • 401 Unauthorized –
    [*]:表示用户没有权力(令牌、用户称、密码错误)。
  • 403 Forbidden – [*]
    表示用户获得授权(与401破绽百出相对),但是看是叫禁止的。
  • 404 NOT FOUND –
    [*]:用户有的要对的是未设有的记录,服务器并未进展操作,该操作是幂等的。
  • 406 Not Acceptable –
    [GET]:用户要的格式不可得(比如用户要JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用户要的资源被永远删除,且非会见再次得到的。
  • 422 Unprocesable entity – [POST/PUT/PATCH]
    当创建一个目标时,发生一个验证错误。
  • 500 INTERNAL SERVER ERROR –
    [*]:服务器出错误,用户用无法看清出之请求是否成功。
  • 200 OK –
    [GET]:服务器成功返回用户请求的数码,该操作是幂等的(Idempotent)。
  • 201 CREATED – [POST/PUT/PATCH]:用户新建或改数据成功。
  • 202 Accepted – [*]:表示一个请求都进后台排队(异步任务)
  • 204 NO CONTENT – [DELETE]:用户删除数据成功。
  • 400 INVALID REQUEST –
    [POST/PUT/PATCH]:用户发生的求有错,服务器无开展新建或改数据的操作,该操作是幂等的。
  • 401 Unauthorized –
    [*]:表示用户没有权力(令牌、用户称、密码错误)。
  • 403 Forbidden – [*]
    表示用户获得授权(与401荒谬相对),但是看是深受明令禁止的。
  • 404 NOT FOUND –
    [*]:用户产生的恳求对的是休存的记录,服务器无进行操作,该操作是幂等的。
  • 406 Not Acceptable –
    [GET]:用户要的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
  • 410 Gone -[GET]:用户要的资源给永远删除,且不会见再次获的。
  • 422 Unprocesable entity – [POST/PUT/PATCH]
    当创建一个对象时,发生一个证错误。
  • 500 INTERNAL SERVER ERROR –
    [*]:服务器发误,用户以无法判定有之呼吁是否中标。

  

  

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注