Restful是一種基於資源的軟件架構風格,所以從定義上來說是跟HTTP無關的。但是本課程提到的Restful API是基於HTTP協議的一種實現。所有相關知識都是基於現有的HTTP協議而來,並沒有對HTTP協議進行擴充。
關於HTTP協議,IFC文檔中有詳盡的知識。有興趣的學員可以了解一下。HTTP協議中與Restful API關系密切的部分。
HTTP協議是應用層的協議,它的特點是簡潔、快速。
在HTTP協議中默認端口是80。如果你訪問的是HTTPS協議的話,默認端口是443。path是資源路徑,在同一個主機中會有很多的資源。如何標識到這些資源就需要使用到路徑參數。query-string參數是發送給HTTP服務器的一個查詢字符串。一般用來對資源做篩選操作。
而最后是錨。比如說我們在寫一個API文檔,一般來說API文檔都會寫在同一個鏈接上面。而如果需要定位到特定的章節,或者是特定函數啊等等的一些使用方法就需要用到錨鏈接。鼠標點擊之后可以直接前往到該鏈接所指向的位置。
一般來說如果你獲取資源就需要使用GET請求,如果需要向服務器發送數據就需要使用POST請求。這是兩個非常常用的方法。HEAD請求方式可能有些學員用的並不是很多。其實在我們平時的開發中主要就使用到POST請求和GET請求方式。
HEAD請求:它的請求方式是請求獲取由請求路徑所標識的資源的響應消息報頭。一般來說當你不需要真正獲取消息的響應體的時候,只需要獲取資源的一個簡要介紹的時候,比較說資源的創建時間和它的最后修改時間的時候就可以使用HEAD請求方式。
接下來的三種請求方式也不是很常用。PUT 請求服務器存儲一個資源,並用請求路徑作為其標識。PUT 方法一般在更新資源的時候比較常用,DELETE請求方式請求服務器刪除請求資源路徑所代表的資源。該方式也使用的很少。但是在Restful API中,是一個非常常用的方式。因為我們對資源的操作無非就是創建、編輯、查詢和刪除。
最后是OPTIONS請求方式。OPTIONS請求方式一般在查詢服務器的性能或者查詢與資源相關的選項和需求的時候用到。比如說我需要獲取服務器允許我對資源進行哪些操作就可以使用OPTIONS請求。OPTIONS請求還涉及到一個比如說類似於訪問頻率限制的一個參數。
響應狀態碼在HTTP協議中是非常重要的部分。在IFC文檔中定義了很多的響應狀態碼。但是我們實際開發中用到的並不是很多。所以我們目前只需要了解常用的狀態碼就可以了。
200 狀態碼 這個標識當前客戶端請求成功,服務端也處理成功。
400 Bad Request 只是當前客戶端請求有語法錯誤,不能被服務器所理解。所以本次請求並沒有成功。
401 Unauthorized 服務器收到本次請求但是請求的資源需要授權訪問而客戶端並沒有授權所以本次請求被服務器拒絕提供服務。
一般以5開頭的狀態碼都是服務器的內部錯誤。500就是服務器內部錯誤。這時候一般是服務器的程序發生了不可預期的錯誤,而不能被正確處理。這時候會返回500錯誤。
一般在服務器性能達到瓶頸之后就會拒絕以后的服務。