HTTP狀態(tài)碼分類

前言:
我們經(jīng)常使用瀏覽器發(fā)出http請求,那么對于請求返回的狀態(tài),對于開發(fā)人員來講,我們必須要明白其所代表的含義,如:
常見狀態(tài)嗎:400(請求無效),401(需要權(quán)限),500(服務(wù)器錯誤),
今天本人就遇到了400錯誤,無效請求,后來檢查發(fā)現(xiàn)是,post請求傳入的參數(shù)類型錯誤了:
public class TestData{
  public string ID{get;set;}
  public string Name{get;set;}
  public int SortNo{get;set;}
}
【httppost】
Public void testAction(TestData data){
//result
}
頁面請求:
$http({  url: seagull2Url.getPlatformUrl(configURL.AddNotic),  method: 'POST',  data: {"ID":"a","Name":"aaa","SortNo":""},}).success(function (data) {  if (data.state == true) {    alert("保存成功");  }}).error(function (ex, state) {  console.log(ex);});
這里的錯誤就是傳入的對象里的屬性:SortNo原本應(yīng)該傳int數(shù)字,這里卻給了一個空值,請求就會返回400錯誤。
對于400錯誤具體的信息,可以通過瀏覽器的調(diào)式功能,找出ex對象的錯誤屬性找到詳細(xì)信息。
{"message":"請求無效。","modelState":{"bannerEntity.SortNo":["Error converting value {null} to type 'System.Int32'. Path 'SortNo', line 1, position 69."]}}

正文:
HTTP狀態(tài)碼分類
HTTP狀態(tài)碼由三個十進(jìn)制數(shù)字組成,第一個十進(jìn)制數(shù)字定義了狀態(tài)碼的類型,后兩個數(shù)字沒有分類的作用。HTTP狀態(tài)碼共分為5種類型:
HTTP狀態(tài)碼分類

分類

分類描述

1**

信息,服務(wù)器收到請求,需要請求者繼續(xù)執(zhí)行操作

2**

成功,操作被成功接收并處理

3**

重定向,需要進(jìn)一步的操作以完成請求

4**

客戶端錯誤,請求包含語法錯誤或無法完成請求

5**

服務(wù)器錯誤,服務(wù)器在處理請求的過程中發(fā)生了錯誤

HTTP狀態(tài)碼列表:
HTTP狀態(tài)碼列表

**狀態(tài)碼 **

狀態(tài)碼英文名稱

中文描述

100

Continue

繼續(xù)。客戶端應(yīng)繼續(xù)其請求

101

Switching Protocols

切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議。只能切換到更高級的協(xié)議,例如,切換到HTTP的新版本協(xié)議

200

OK

請求成功。一般用于GET與POST請求

201

Created

已創(chuàng)建。成功請求并創(chuàng)建了新的資源

202

Accepted

已接受。已經(jīng)接受請求,但未處理完成

203

Non-Authoritative Information

非授權(quán)信息。請求成功。但返回的meta信息不在原始的服務(wù)器,而是一個副本

204

No Content

無內(nèi)容。服務(wù)器成功處理,但未返回內(nèi)容。在未更新網(wǎng)頁的情況下,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔

205

Reset Content

重置內(nèi)容。服務(wù)器處理成功,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖。可通過此返回碼清除瀏覽器的表單域

206

Partial Content

部分內(nèi)容。服務(wù)器成功處理了部分GET請求

300

Multiple Choices

多種選擇。請求的資源可包括多個位置,相應(yīng)可返回一個資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇

301

Moved Permanently

永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI。今后任何新的請求都應(yīng)使用新的URI代替

302

Found

臨時移動。與301類似。但資源只是臨時被移動??蛻舳藨?yīng)繼續(xù)使用原有URI

303

See Other

查看其它地址。與301類似。使用GET和POST請求查看

304

Not Modified

未修改。所請求的資源未修改,服務(wù)器返回此狀態(tài)碼時,不會返回任何資源??蛻舳送ǔ彺嬖L問過的資源,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源

305

Use Proxy

使用代理。所請求的資源必須通過代理訪問

306

Unused

已經(jīng)被廢棄的HTTP狀態(tài)碼

307

Temporary Redirect

臨時重定向。與302類似。使用GET請求重定向

400

Bad Request

客戶端請求的語法錯誤,服務(wù)器無法理解

401

Unauthorized

請求要求用戶的身份認(rèn)證

402

Payment Required

保留,將來使用

403

Forbidden

服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求

404

Not Found

服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)。通過此代碼,網(wǎng)站設(shè)計人員可設(shè)置"您所請求的資源無法找到"的個性頁面

405

Method Not Allowed

客戶端請求中的方法被禁止

406

Not Acceptable

服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求

407

Proxy Authentication Required

請求要求代理的身份認(rèn)證,與401類似,但請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán)

408

Request Time-out

服務(wù)器等待客戶端發(fā)送的請求時間過長,超時

409

Conflict

服務(wù)器完成客戶端的PUT請求是可能返回此代碼,服務(wù)器處理請求時發(fā)生了沖突

410

Gone

客戶端請求的資源已經(jīng)不存在。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼,網(wǎng)站設(shè)計人員可通過301代碼指定資源的新位置

411

Length Required

服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息

412

Precondition Failed

客戶端請求信息的先決條件錯誤

413

Request Entity Too Large

由于請求的實體過大,服務(wù)器無法處理,因此拒絕請求。為防止客戶端的連續(xù)請求,服務(wù)器可能會關(guān)閉連接。如果只是服務(wù)器暫時無法處理,則會包含一個Retry-After的響應(yīng)信息

414

Request-URI Too Large

請求的URI過長(URI通常為網(wǎng)址),服務(wù)器無法處理

415

Unsupported Media Type

服務(wù)器無法處理請求附帶的媒體格式

416

Requested range not satisfiable

客戶端請求的范圍無效

417

Expectation Failed

服務(wù)器無法滿足Expect的請求頭信息

500

Internal Server Error

服務(wù)器內(nèi)部錯誤,無法??成請求

501

Not Implemented

服務(wù)器不支持請求的功能,無法完成請求

502

Bad Gateway

充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,從遠(yuǎn)端服務(wù)器接收到了一個無效的請求

503

Service Unavailable

由于超載或系統(tǒng)維護(hù),服務(wù)器暫時的無法處理客戶端的請求。延時的長度可包含在服務(wù)器的Retry-After頭信息中

504

Gateway Time-out

充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器,未及時從遠(yuǎn)端服務(wù)器獲取請求

505

HTTP Version not supported

服務(wù)器不支持請求的HTTP協(xié)議的版本,無法完成處理

常見錯誤的處理方法:
500錯誤
500錯誤是站長經(jīng)常遇到的問題,就本人的經(jīng)驗,原因及解決方法歸納如下:
1、運(yùn)行的用戶數(shù)過多,對服務(wù)器造成的壓力過大,服務(wù)器無法響應(yīng),則報HTTP500錯誤。
這個原因是網(wǎng)站報500錯誤的最主要原因,很多網(wǎng)站為什么突然會報500錯誤(service unavailable)呢?90%是由于空間壓力過大,超出了空間商設(shè)定的上限而造成的。
遇到這個問題,最好是第一時間找到空間商的售后服務(wù),他們一般會幫你回收一下應(yīng)用程序池,問題便得到解決。如果沒有找到售后服務(wù),可以自己在空間管理后臺,找到“回收應(yīng)用程序池”那個項目,自己手動執(zhí)行一下即可。不過,一些空間管理后臺并沒有提供該項服務(wù)。
2、如果排除了第1的可能性,那么很大原因便是程序上出現(xiàn)了問題。
可以做個簡單的測試頁面,看是否能運(yùn)行成功,再檢測報錯的頁面,從而針對性的進(jìn)行修改。
該做關(guān)聯(lián)的地方?jīng)]有去做關(guān)聯(lián),則報HTTP500錯誤。進(jìn)行手工或者自動關(guān)聯(lián),問題得到解決。
3、如果測試中所進(jìn)行的操作需要向數(shù)據(jù)庫中插入數(shù)據(jù),若大數(shù)據(jù)量的情況下導(dǎo)致數(shù)據(jù)庫中表空間已滿,或者緩沖池較小無法滿足數(shù)據(jù)的存取等,都有可能導(dǎo)致HTTP500錯誤。
解決方法是調(diào)整數(shù)據(jù)庫、修改連接池大小等等,根據(jù)個人具體情況進(jìn)行修正即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • HTTP狀態(tài)碼的分類 HTTP狀態(tài)碼由三個十進(jìn)制數(shù)字組成,第一個十進(jìn)制數(shù)字定義了狀態(tài)碼的類型,后兩個數(shù)字沒有分類的...
    薄涼_簡書閱讀 641評論 0 1
  • HTTP狀態(tài)碼(HTTP Status Code)表示http服務(wù)器對與請求HTTP響應(yīng)狀態(tài)的3位數(shù)字代碼。它由 ...
    BeeNoisy閱讀 1,917評論 0 8
  • 前言 HTTP狀態(tài)碼是用以表示[網(wǎng)頁服務(wù)器]響應(yīng)狀態(tài)的3位數(shù)字代碼,最常見的404錯誤就是其中之一通過狀態(tài)碼我們能...
    無聊數(shù)藏家閱讀 912評論 0 4
  • 網(wǎng)絡(luò)請求是iOS項目的一個大部分,而且大部分的iOS的項目的網(wǎng)絡(luò)請求是根據(jù)AFN進(jìn)行的二次封裝,我們查看返回的結(jié)果...
    FR_Zhang閱讀 7,259評論 15 46

友情鏈接更多精彩內(nèi)容