restful博客推薦及個人筆記(面試會問)- 一種接口風格

restful和http的區別 - https://blog.csdn.net/l18848956739/article/details/79867634

(一)  首先REST只是一種風格,不是一種標準
(二)  REST是以資源爲中心的
(三)  REST充分利用或者說極端依賴HTTP協議
 
一.對於今天正在吸引如此多注意力的最純粹形式的 REST Web 服務,其具體實現應該遵循以下基本設計原則:
 
1.1.顯式地使用不同的 HTTP 請求方法
1.2.無狀態
1.3.公開目錄結構式的 URI(通過邏輯URI定位資源)。
 
1.1.顯式地使用不同的 HTTP 請求方法
 
    我們在 Web 應用中處理來自客戶端的請求時,通常只考慮 GET 和 POST 這兩種 HTTP 請求方法。實際上,HTTP 還有 HEAD、PUT、DELETE 等請求方法。而在 REST 架構中,用不同的 HTTP 請求方法來處理對資源的 CRUD(創建、讀取、更新和刪除)操作:
 
    若要在服務器上創建資源,應該使用 POST 方法。 
    若要檢索某個資源,應該使用 GET 方法。 
    若要更改資源狀態或對其進行更新,應該使用 PUT 方法。 
    若要刪除某個資源,應該使用 DELETE 方法。

理解RESTful架構 - https://www.ruanyifeng.com/blog/2011/09/restful.html 
Rest : 表現層狀態轉化 = 表現層 + 狀態轉化

我們把"資源"具體呈現出來的形式,叫做它的"表現層"(Representation)。

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

URI只代表資源的實體,不代表它的形式。嚴格地說,有些網址最後的".html"後綴名是不必要的,因爲這個後綴名錶示格式,屬於"表現層"範疇,而URI應該只代表"資源"的位置。它的具體表現形式,應該在HTTP請求的頭信息中用Accept和Content-Type字段指定,這兩個字段纔是對"表現層"的描述。

通俗地說就是客戶端向請求資源時的資源規範約束,如不是用.html後綴等。

狀態轉化(State Transfer)

訪問一個網站,就代表了客戶端和服務器的一個互動過程。在這個過程中,勢必涉及到數據和狀態的變化。

互聯網通信協議HTTP協議,是一個無狀態協議。這意味着,所有的狀態都保存在服務器端。因此,如果客戶端想要操作服務器,必須通過某種手段,讓服務器端發生"狀態轉化"(State Transfer)。而這種轉化是建立在表現層之上的,所以就是"表現層狀態轉化"。

客戶端用到的手段,只能是HTTP協議。具體來說,就是HTTP協議裏面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。它們分別對應四種基本操作:GET用來獲取資源,POST用來新建資源(也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源。(顯式使用,而不是一味地使用get/post)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章