---
# System prepended metadata

title: RESTful API & HTTP協定
tags: [Internet 網路知識與安全]

---

###### tags: `Internet 網路知識與安全`
# RESTful API & HTTP協定

### HTTP協定
HTTP的標準制定由全球資訊網協會（World Wide Web Consortium，W3C）和網際網路工程任務組（Internet Engineering Task Force，IETF）進行協調。主要統一規範網路世界溝通方式:客戶端（client）發起請求（request）開始。服務端（server）接收請求後再將回應（response）傳送給客戶端後結束，且定義了八種方法來以不同方式操作指定的資源。

## RESTful API : 
一種設計風格，且採用HTTP協定中的GET、PUT、POST、DELETE。
HTTP具有GET、POST、PUT與DELETE等具語義之動詞，
請求方法可分為兩種類型 [FromBody]、 [Fromurl]，
且具有幕等性。

### 幕等性
判斷方式: 同一個 Url 請求多(N)次後，其結果始終如一。
判斷時機: 當發現為不幕等時，則該請求應為 Post 。

Get 方法連續調用多次，客戶端取得結果相同。 -> 幕等
Put 方法連續調用多次，第一次結果不同，N次後結果相同。 -> 幕等
Delete 方法連續調用多次，第一次結果不同，N次後結果相同。 -> 幕等
Post 方法連續調用多次，結果始終不同。 -> 不幕等

> 1xx訊息——請求已被伺服器接收，繼續處理
2xx成功——請求已成功被伺服器接收、理解、並接受
3xx重新導向——需要後續操作才能完成這一請求
4xx請求錯誤——請求含有詞法錯誤或者無法被執行
5xx伺服器錯誤——伺服器在處理某個正確請求時發生錯誤

---

### Session 與 Cookie
