前後端分離之RESTful

很簡單的問題,在前後端分離的應用模式裏,後端API如何定義?

  • Roy Thomas Fielding在他2000年的博士論文中提出了REST這個詞。這個人就是HTTP協議(1.0版和1.1版)的主要設計者、Apache服務器軟件的作者之一、Apache基金會的第一任主席。所以,他的這篇論文一經發表,就引起了關注,並且立即對互聯網開發產生了深遠的影響。
  • Fielding將他對互聯網軟件的架構原則,定名爲REST,即Representational State Transfer的縮寫。維基百科稱其爲“具象狀態傳輸”,國內大部分人理解爲“表現層狀態轉化
  • RESTful是一種開發理念。維基百科說:REST是設計風格而不是標準。REST描述的是在網絡中client和server的一種交互形式;REST本身不使用,實用的是如何設計RESTful APIREST風格的網絡接口),一種萬維網軟件架構風格。
  • 我們先來具體看一下RESTful風格的url,比如我要查詢商品信息,那
  • 可以看出REST特點:url簡潔,將參數通過url傳到服務器,而傳統的url比較羅嗦,而且現實中瀏覽器地址欄會拼接一大串字符,想必你們都見過吧。但是採用REST的風格就會好很多,現在很多的網站已經採用這種風格了,這也是潮流方向,典型的就是url的短化轉換。

    那麼,到底什麼是RESTFul架構: 如果一個架構符合REST原則,就稱它爲RESTful架構。

    要理解RESTful架構,理解Representational State Transfer這三個單詞的意思。

  • 具象的,就是之表現層,要表現的對象也就是‘資源’,什麼是資源呢?網站就是資源共享的東西,客戶端(瀏覽器)訪問web服務器,所獲去的就叫資源。比如html,txt,json,圖片,視頻等等。

  • 表現,比如,文本可以用txt格式表現,也可以用HTML格式、XML格式、JSON格式表現,甚至可以採取二進制格式;圖片可以用JPG格式表現,也可以用PNG格式表現。

  • 瀏覽器通過URL確定一個資源,但是如何確定它的具體表現形式呢?應該在HTTP請求的頭信息中用Accept和Content-Type字段指定,這兩個字段纔是對”表現層“的描述

  • 狀態轉化,就是客戶端和服務器互動的一個過程,在這個過程中,勢必設計到數據和狀態的變化,這種變化叫做狀態轉換。

  • 互聯網通信協議HPPT協議,客戶端訪問必然實用HTTP協議,如果客戶端想要操作服務器,必須通過某種手段,讓服務器端發生”狀態轉化“State Transfer

  • HTTP協議實際上含有4個操作方式的動詞,分別是GET,POST,PUT,DELETE,他們分別對應四種操作。GET用戶獲取資源,POST用於新建資源,PUT用戶更新資源,DELETE用於刪除資源。GET和POST是表單提交的兩種基本方式,比較常見,而PUT和DELETE不太常用。

  • 而且HTTP協議是一種無狀態協議,這樣就必須把所有的狀態都保存在服務器端。因此,如果客戶端想要操作服務器,必須通過某種手段,讓服務器端發生’狀態轉化‘(State Transfer

  • 總結:

    • RESTful架構就是:
      • 每一個URL代表一種資源;
      • 客戶端和服務器之間,傳遞這種資源的某種表現層;
      • 客戶端通過四個HTTP動詞,對服務器資源進行操作,實現”表現層狀態轉化“
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章