架構性特性:
效能(硬體和軟體投入)
伸縮性(規模)
簡化統一介面(通訊協議 http )
元件修改
通訊透明
元件可以執行
可靠性 冪等
put初始狀態:0
修改狀態:1*n
最終狀態:1
put初始狀態:1
修改狀態:0*n
最終狀態:0
非冪等post
初始狀態:1
修改狀態:1+1=2
n次修改:1+n=n+1
冪等/非冪等 依賴於服務端實現,這種方式是一種契約
白話文(
概念解釋
冪等性http冪等方法,是指無論呼叫多少次都不會產生不同***(資料變更)的http方法
簡單解釋:
重**送同乙個請求多次,結果同傳送一次
操作示例:
get /tickets # 獲取ticket列表
get /tickets/12 # 檢視某個具體的ticket
post /tickets # 新建乙個ticket
put /tickets/12 # 更新ticket 12
patch /tickets/12 # 更新ticket 12
delete /tickets/12 # 刪除ticekt 12
http get(冪等)
get用於獲取資源,不管呼叫多少次介面,返回結果保持不變,不會改變資源。如:
第一次呼叫 get /tickets , 後台返回tickets列表(我想看下還有多少張票)
第二次呼叫 get /tickets , 返回同樣的資料(我想再看一遍tickets資訊)
ps: 我多看一眼,總不會把你的票看沒了吧,我看或者不看你就在那裡
http post(非冪等)
post用於建立資源,每次呼叫都會建立乙個新的資源,如
第一次呼叫 post /tickets ,後台產生 /tickets/1 這麼乙個資源(我要新增一張票)
第二次呼叫 post /tickets , 後台產生 /tickets/2 這麼乙個資源(我要再新增一張票)
ps:我是生產車票的,所以我不會產生重複的車票(id至少不一樣)
http put(冪等)
put用於更新資源,沒有的話則執行建立操作。如:
第一次呼叫 put /tickets/11 , 後台建立 /tickets/11 (幫我看下11號票在不在,在的話更新下狀態,不在的話建立下)
第二次呼叫 put /tickets/11 , 後台更新 /tickets/11 (幫我看下11號票在不在,在的話更新下狀態,不在的話建立下)
由於兩次請求攜帶的資料是一樣的,所以不論請求多少次,最終的結果都是後台存在這麼乙個資源(建立或更新)
ps:我有強迫症加健忘症,同樣的事我可能會讓你幹很多遍,你給我小心處理哈,我可不想看到不同的結果
http delete(冪等)
delete用於刪除資源,會將資源從後台刪除。如:
第一次呼叫 delete /tickets/11 , 後台刪除 /tickets/11對應的資料資訊 (11號票我不要了,幫我刪除下吧)
第二次呼叫 delete /tickets/11 , 後台判斷 /tickets/11不存在,無操作(11號票我不記得有沒有刪除,幫我刪除下吧)
ps:我也有健忘症啊,同樣的事我也可能會幹很多遍,你忽略就好了,給我個眼神(返回碼),我就知道了
備註:/tickets/12 這種叫做uri,乙個uri代表乙個資源,本例中代表一張票(實際可能對應資料庫中的一行資訊),
所以上述描述的建立,刪除,更新資源,都是指根據uri及其所附帶資訊實際操作uri對應的後台資源。
)
TCP IP理論基礎
一 tcp ip的分層模型 osi協議參考模型,它是基於國際標準化組織 iso 的建議發展起來的,它分為7個層次 應用層 表示層 會話層 傳輸層 網路層 資料鏈路層及物理層。這個7層的協議模型雖然規定得非常細緻和完善,但在實際中卻得不到廣泛的應用,其重要的原因之一就在於它過於複雜。但它仍是此後很多協...
TCP IP理論基礎
linux中網路棧的介紹一般分為四層的internet模型。分別為應用層 傳輸層 網際層和網路介面。tcp ip實際上是乙個協同工作的通訊家族,為網路資料通訊提供通路。為方便將tcp ip協議族大致上分為三部分 1.internet協議 ip 這一部分也稱為網路層。主要包括ip icmp和arp。其...
SCM理論基礎
在乙個大型的專案中,會有很多人員,比如說專案管理者 開發人員等,人多的情況下,很可能就會在及時溝通 管理等方面出現問題,具體可以總結為 這些問題的存在,不僅會使我們的開發效率很低,做出來的產品質量也會受影響。有了scm,就很好的解決了這些問題。scmsoftwareconfiguration man...