restful总结
一.restful是什么?
?本質(zhì)上是一種軟件架構(gòu)風格,核心是面向資源去設(shè)計API?
設(shè)計概念和準則
1.網(wǎng)絡(luò)上的所有事件都可以被抽象為資源
2.每一個資源都有唯一的資源標識,對資源的操作不會改變這些標識
3.所有的操作是無狀態(tài)的
二.為什么要使用restful?
解決的問題有:
1.減低開發(fā)的復(fù)雜性
2.提高系統(tǒng)的可伸縮性
三.HTTP協(xié)議-URL
http 是一個屬于應(yīng)用層的協(xié)議,特點是簡捷、快速
schema://host[:port]/path[?query-string[#anchor]
achema:指定低層使用的協(xié)議(例如:http,https,ftp)
host 服務(wù)器的IP地址或者是域名
port 服務(wù)器端口HTTP 80 HTTPS 443
path 訪問資源的路徑
jquery-string 發(fā)送給http服務(wù)器的數(shù)據(jù)
anchor 苗點
請求
組成格式:請求行、消息報頭、請求正文
請求行
格式:method request-url HTTP-Version CRLF
舉例 GET /HTTP/1.1 CRLF
請求方式
GET 請求獲取Request-URL所標識的資源
POST 在Request-URL所標識的資源后附加新的資源
HEAD? 請求獲取由Request-URL所標識的資源的響應(yīng)消息報頭
PUT 請求服務(wù)器存儲一個資源,并用Request-URL作為其標識
DELETE請求服務(wù)器刪除請求URL所標識的資源
OPTIONS 請求查詢服務(wù)器的性能或者查詢與資源相關(guān)的選項和需求
響應(yīng)
組成格式:請求行、消息報頭、請求正文
請求行
格式:HTTP-Version Status-Code Reason-Phrase CRLF
舉例 HTTP/1.1 200 OK
常見CODE
200 ok
301 永久性重定向
302 臨時性重定向
401 服務(wù)器收到,拒絕請求
403 沒有訪問權(quán)限
404 找不到頁面
409 客戶端沒等服務(wù)器回復(fù),直接強關(guān)了請求
500 程序錯誤
502 web服務(wù)器未啟動啥的,網(wǎng)關(guān)錯誤
503 服務(wù)器性能瓶頸,不能處理后面的求
504 網(wǎng)關(guān)超時,一般都是web服務(wù)器已經(jīng)找到上游,但上游一直不給回復(fù),一般開發(fā)時都是SQL過慢,無回復(fù)
四.restful架構(gòu)與其他架構(gòu)的區(qū)別
1.SOAP webService
webService 是一種跨編程語言和跨操作系統(tǒng)平臺的遠程調(diào)用技術(shù)
通過HTTP協(xié)議發(fā)送請求和接收結(jié)果時采用XML格式封裝,并增加一些特定的HTTP消息頭,這些特定的HTTP消息頭和內(nèi)容格式就是SOAP協(xié)議
安全性 速度要求高,安全要求不高的場景,可用restful,
五.如何設(shè)計restful API
資源路徑(URI)
比如:場景、版本號等
HTTP動詞
比如:GET POST PUT DELETE等
過濾信息
如果數(shù)據(jù)很多,服務(wù)器要根據(jù)API提供的參數(shù),過濾返回的結(jié)果,比如分頁啥的
狀態(tài)碼
客戶端有問題 401沒有提供任何可驗證的參數(shù),直接拒了
錯誤處理
返回JSON或XML
返回結(jié)果
?
?
?
?
?
?
總結(jié)
- 上一篇: 九江田家炳中学的国防生是什么
- 下一篇: elasticsearch hbase