HTTP是一個客戶端(用戶)和伺服器端(網站)之間請求和應答的標準,通常使用TCP協定。
當一個使用者按下網頁的一個按鈕
或是一開始進入表單等等
都是送一個http請求到伺服器端
也就是我們目前要做的部分
HTTP為無狀態的請求-回應通訊協定
也就是說伺服器端並不會紀錄每次接收並回傳訊息後就斷開雙方的連結
跟傳統的scoket持續連結的方式不同
目前最新的Http 版本為HTTP/2 但是因為是近幾年才推出
所以目前還是用HTTP/1.1
完整的Http協定可以看
rfc2616
簡中板
我覺得好懂得圖文並茂版
HTTP 總共有8個方法
比較上用的我會用粗體字
名稱 | 說明 |
---|---|
GET | 向指定的資源發出「顯示」請求。使用GET方法應該只用在讀取資料。 |
POST | 向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。 |
PUT | 向指定資源位置上傳其最新內容。 |
DELETE | 請求伺服器刪除Request-URI所標識的資源。 |
HEAD | 與GET方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部份。 |
TRACE | 回顯伺服器收到的請求,主要用於測試或診斷。 |
OPTIONS | 這個方法可使伺服器傳回該資源所支援的所有HTTP請求方法。 |
CONNECT | HTTP/1.1協定中預留給能夠將連接改為隧道方式的代理伺服器。通常用於SSL加密伺服器的連結(經由非加密的HTTP代理伺服器)。 |
在REST其中前面四個剛好對應資料庫的CRUD
名稱 | 資料庫動作 |
---|---|
GET | READ(讀取) R |
POST | CREATE(新增) C |
PUT | UPDATE(修改) U |
DELETE | DELETE(刪除) D |
在選用httpMethod的時候
盡量考慮到其對應的動作做設計
用戶向SERVER端請求後返回的狀態碼
這邊只列幾個比較常用的HTTP Status CODE
完整請見HTTP狀態碼
HTTP Status CODE | 狀態 | 說明 |
---|---|---|
200 | OK | 請求已成功,請求所希望的回應頭或資料體將隨此回應返回。 |
204 | No Content | 伺服器成功處理了請求,沒有返回任何內容。 |
400 | Bad Request | 由於明顯的客戶端錯誤(例如,格式錯誤的請求語法,太大的大小,無效的請求訊息或欺騙性路由請求) |
401 | Unauthorized | 用戶沒有必要的憑證。 |
403 | Forbidden | 伺服器已經理解請求,但是拒絕執行它。 |
404 | Not Found | 請求失敗,請求所希望得到的資源未被在伺服器上發現。(最常見,通常是網址打錯) |
405 | Method Not Allowed | 請求行中指定的請求方法不能被用於請求相應的資源。(例如用GET去請求需要用POST請求的資源) |
500 | Internal Server Error | 通用錯誤訊息,伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。沒有給出具體錯誤資訊。(通常是程式出錯) |
502 | Bad Gateway | 作為閘道器或者代理工作的伺服器嘗試執行請求時,從上游伺服器接收到無效的回應。 |
一款用來測試API的工具
他有出CHROME的擴充套件
可以從POSTMAN官網進行下載桌面板
介面看起來像
1的地方是可以選擇Http Method
2是讓你填入請求網址
3的部分按下去可以輸入URL參數(你也可以直接打在2的網址列)
拿我昨天的文章網址當例子(https://ithelp.ithome.com.tw/articles/10241376)
我們使用GET方法(你所看見的網頁都是GET方法取得)
可以看到回應的內容是我昨天的文章