對(duì)于前后端分離這種開(kāi)發(fā)模式,我個(gè)人還是比較喜歡的,因?yàn)檫@樣可以讓更專(zhuān)業(yè)的人做更專(zhuān)業(yè)的事情,后端專(zhuān)注于做 API 的開(kāi)發(fā)設(shè)計(jì),前端專(zhuān)注于數(shù)據(jù)的展示,頁(yè)面的樣式。
這樣前后端需要就某些信息達(dá)成一些共識(shí),比如說(shuō)常用的 HTTP 方法, 常用的 HTTP 狀態(tài)碼等
HTTP Method 較為簡(jiǎn)單,我們常用的習(xí)慣如下:
一般查詢(xún)我們都會(huì)使用 GET 方法
創(chuàng)建新的記錄使用 POST 方法
更新已有數(shù)據(jù)使用 PUT 方法
更新已有數(shù)據(jù)部分屬性使用 PATCH 方法
刪除已有數(shù)據(jù)使用 DELETE 方法
下面來(lái)詳細(xì)介紹一下常用的 HTTP 狀態(tài)碼
1xx#
1xx 狀態(tài)碼一般是一個(gè)請(qǐng)求的中間狀態(tài),一般是信息提示,請(qǐng)求協(xié)商
100 Continue,請(qǐng)求未結(jié)束,應(yīng)該繼續(xù)請(qǐng)求
101 Switching Protocol,協(xié)議轉(zhuǎn)換,在使用 Web Socket 的時(shí)候就會(huì)遇到,下面是一個(gè)示例,響應(yīng)會(huì)有一個(gè)
Connection: Upgrade 的請(qǐng)求頭,
Upgrade 會(huì)指定要使用的協(xié)議名稱(chēng)
2xx#
2xx 一般表示請(qǐng)求處理成功
200 OK,請(qǐng)求處理成功
201 Created,請(qǐng)求處理成功,并且新資源已經(jīng)創(chuàng)建
202 Accepted,請(qǐng)求已經(jīng)接受,正在處理,尚未處理完成
204 No Content,響應(yīng)內(nèi)容為空,在 asp.net core 中返回一個(gè) Json(null) 的時(shí)候就會(huì)是一個(gè) NoContent 的結(jié)果
3xx#
3xx 一般表示重定向
301 Moved Permanently 永久重定向
302 Found 臨時(shí)重定向
307 Temporary Redirect 臨時(shí)重定向請(qǐng)求
308 Permanent Redirect 永久重定向請(qǐng)求
這幾個(gè)重定向的區(qū)別:
301、302 只支持 GET 請(qǐng)求,如果是 POST 請(qǐng)求,重定向后會(huì)使用 GET 請(qǐng)求且 Body 數(shù)據(jù)會(huì)丟失
307、308 支持 POST 請(qǐng)求,在 POST 重定向的時(shí)候會(huì)帶上原來(lái)請(qǐng)求的 body 再請(qǐng)求新的地址,body 數(shù)據(jù)不會(huì)丟失
302、307 是臨時(shí)重定向
301、308 是永久重定向,是允許緩存的,瀏覽器可以緩存
304 Not Modified,資源未發(fā)生修改,可以直接使用瀏覽器本地緩存
4xx#
4xx 一般表示客戶(hù)端請(qǐng)求錯(cuò)誤
400 BadRequest,錯(cuò)誤請(qǐng)求,一般用來(lái)表示請(qǐng)求參數(shù)異常,比如請(qǐng)求的某一個(gè)參數(shù)不能為空,但實(shí)際請(qǐng)求是空
401 Unauthorized,未授權(quán),資源需要授權(quán)或登錄,而用戶(hù)沒(méi)有登錄或者沒(méi)有提供訪問(wèn)所需的 Token 等
403 Forbidden,禁止訪問(wèn),當(dāng)前用戶(hù)沒(méi)有權(quán)限訪問(wèn)資源,如需要Admin角色的用戶(hù),但是請(qǐng)求的用戶(hù)沒(méi)有這個(gè)角色
404 NotFound,未找到資源,資源不存在
405 Method Not Allowed,不允許的方法調(diào)用,資源不支持的請(qǐng)求方法,比如資源只允許 GET 請(qǐng)求,但是實(shí)際請(qǐng)求使用了 POST 或 DELETE 方法
406 Not Acceptable,請(qǐng)求的資源客戶(hù)端不支持處理,比如客戶(hù)端希望獲取 xml 的響應(yīng),但是服務(wù)器端只支持 JSON 響應(yīng)
408 Request Timeout, 請(qǐng)求處理超時(shí)
409 Conflict,請(qǐng)求資源沖突,常發(fā)生在 PUT 更新資源信息時(shí)發(fā)生,比如更新時(shí)指定資源的 ETAG,但是PUT請(qǐng)求時(shí),資源的 ETAG 已經(jīng)發(fā)生變化
410 Gone,請(qǐng)求資源在源服務(wù)器上不再可用
411 Length Required,請(qǐng)求需要攜帶 Content-Length 請(qǐng)求頭
412 Precondition Failed,請(qǐng)求預(yù)檢失敗,請(qǐng)求的某些參數(shù)不符合條件
The pre condition given in the request evaluated to false by the server.
413 Payload Too Large,請(qǐng)求的參數(shù)太大,請(qǐng)求的 body 過(guò)大,服務(wù)器拒絕處理
414 URI Too Long,請(qǐng)求的 URI 地址太長(zhǎng),服務(wù)器拒絕處理
415 Unsupported Media Type,不支持的媒體類(lèi)型或不支持的編碼,比如服務(wù)器只支持處理 JSON 請(qǐng)求,但是請(qǐng)求是 xml 格式
5xx#
5xx 一般表示服務(wù)端錯(cuò)誤
500 Internal Server Error,服務(wù)器內(nèi)部錯(cuò)誤
501 Not Implemented 服務(wù)器不支持需要處理請(qǐng)求的功能,比如圖片壓縮等處理
502 Bad Gateway 反向代理或網(wǎng)關(guān)找不到處理請(qǐng)求的服務(wù)器
503 Service Unavailable 服務(wù)不可用
504 Gateway Timeout 網(wǎng)關(guān)超時(shí)
505 HTTP Version Not Supported,不支持的 HTTP 版本,服務(wù)器不支持或拒絕處理這個(gè) HTTP 版本的請(qǐng)求
原文來(lái)自:
https://www.linuxprobe.com/http-status-code.html
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):ps-sw.cn