restful總結

一.restful是什麼?

 本質上是一種軟件架構風格,核心是面向資源去設計API 

設計概念和準則

1.網絡上的所有事件都可以被抽象爲資源

2.每一個資源都有唯一的資源標識,對資源的操作不會改變這些標識

3.所有的操作是無狀態的

二.爲什麼要使用restful?

解決的問題有:

1.減低開發的複雜性

2.提高系統的可伸縮性

三.HTTP協議-URL

http 是一個屬於應用層的協議,特點是簡捷、快速

schema://host[:port]/path[?query-string[#anchor]

achema:指定低層使用的協議(例如:http,https,ftp)

host 服務器的IP地址或者是域名

port 服務器端口HTTP 80 HTTPS 443

path 訪問資源的路徑

jquery-string 發送給http服務器的數據

anchor 苗點

請求

組成格式:請求行、消息報頭、請求正文

請求行

格式:method request-url HTTP-Version CRLF

舉例 GET /HTTP/1.1 CRLF

請求方式

GET 請求獲取Request-URL所標識的資源

POST 在Request-URL所標識的資源後附加新的資源

HEAD  請求獲取由Request-URL所標識的資源的響應消息報頭

PUT 請求服務器存儲一個資源,並用Request-URL作爲其標識

DELETE請求服務器刪除請求URL所標識的資源

OPTIONS 請求查詢服務器的性能或者查詢與資源相關的選項和需求

響應

組成格式:請求行、消息報頭、請求正文

請求行

格式:HTTP-Version Status-Code Reason-Phrase CRLF

舉例 HTTP/1.1 200 OK

常見CODE

200 ok

301 永久性重定向

302 臨時性重定向

401 服務器收到,拒絕請求

403 沒有訪問權限

404 找不到頁面

409 客戶端沒等服務器回覆,直接強關了請求

500 程序錯誤

502 web服務器未啓動啥的,網關錯誤

503 服務器性能瓶頸,不能處理後面的求

504 網關超時,一般都是web服務器已經找到上游,但上游一直不給回覆,一般開發時都是SQL過慢,無回覆

四.restful架構與其他架構的區別

1.SOAP webService

webService 是一種跨編程語言和跨操作系統平臺的遠程調用技術

通過HTTP協議發送請求和接收結果時採用XML格式封裝,並增加一些特定的HTTP消息頭,這些特定的HTTP消息頭和內容格式就是SOAP協議

安全性 速度要求高,安全要求不高的場景,可用restful,

五.如何設計restful API

資源路徑(URI)

比如:場景、版本號等

HTTP動詞

比如:GET POST PUT DELETE等

過濾信息

如果數據很多,服務器要根據API提供的參數,過濾返回的結果,比如分頁啥的

狀態碼

客戶端有問題 401沒有提供任何可驗證的參數,直接拒了

錯誤處理

返回JSON或XML

返回結果

 

 

 

 

 

 

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