前言:
我們經(jīng)常使用瀏覽器發(fā)出http請(qǐng)求,那么對(duì)于請(qǐng)求返回的狀態(tài)定铜,對(duì)于開(kāi)發(fā)人員來(lái)講伪冰,我們必須要明白其所代表的含義,如:
常見(jiàn)狀態(tài)嗎:400(請(qǐng)求無(wú)效)鹏浅,401(需要權(quán)限),500(服務(wù)器錯(cuò)誤)个榕,
今天本人就遇到了400錯(cuò)誤篡石,無(wú)效請(qǐng)求,后來(lái)檢查發(fā)現(xiàn)是西采,post請(qǐng)求傳入的參數(shù)類(lèi)型錯(cuò)誤了:
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
}
頁(yè)面請(qǐng)求:
$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);});
這里的錯(cuò)誤就是傳入的對(duì)象里的屬性:SortNo原本應(yīng)該傳int數(shù)字凰萨,這里卻給了一個(gè)空值,請(qǐng)求就會(huì)返回400錯(cuò)誤械馆。
對(duì)于400錯(cuò)誤具體的信息胖眷,可以通過(guò)瀏覽器的調(diào)式功能,找出ex對(duì)象的錯(cuò)誤屬性找到詳細(xì)信息霹崎。
{"message":"請(qǐng)求無(wú)效珊搀。","modelState":{"bannerEntity.SortNo":["Error converting value {null} to type 'System.Int32'. Path 'SortNo', line 1, position 69."]}}
正文:
HTTP狀態(tài)碼分類(lèi)
HTTP狀態(tài)碼由三個(gè)十進(jìn)制數(shù)字組成,第一個(gè)十進(jìn)制數(shù)字定義了狀態(tài)碼的類(lèi)型尾菇,后兩個(gè)數(shù)字沒(méi)有分類(lèi)的作用境析。HTTP狀態(tài)碼共分為5種類(lèi)型:
HTTP狀態(tài)碼分類(lèi)
分類(lèi)
分類(lèi)描述
1**
信息,服務(wù)器收到請(qǐng)求派诬,需要請(qǐng)求者繼續(xù)執(zhí)行操作
2**
成功劳淆,操作被成功接收并處理
3**
重定向,需要進(jìn)一步的操作以完成請(qǐng)求
4**
客戶端錯(cuò)誤默赂,請(qǐng)求包含語(yǔ)法錯(cuò)誤或無(wú)法完成請(qǐng)求
5**
服務(wù)器錯(cuò)誤沛鸵,服務(wù)器在處理請(qǐng)求的過(guò)程中發(fā)生了錯(cuò)誤
HTTP狀態(tài)碼列表:
HTTP狀態(tài)碼列表
**狀態(tài)碼 **
狀態(tài)碼英文名稱(chēng)
中文描述
100
Continue
繼續(xù)。客戶端應(yīng)繼續(xù)其請(qǐng)求
101
Switching Protocols
切換協(xié)議。服務(wù)器根據(jù)客戶端的請(qǐng)求切換協(xié)議曲掰。只能切換到更高級(jí)的協(xié)議疾捍,例如,切換到HTTP的新版本協(xié)議
200
OK
請(qǐng)求成功栏妖。一般用于GET與POST請(qǐng)求
201
Created
已創(chuàng)建乱豆。成功請(qǐng)求并創(chuàng)建了新的資源
202
Accepted
已接受。已經(jīng)接受請(qǐng)求吊趾,但未處理完成
203
Non-Authoritative Information
非授權(quán)信息咙鞍。請(qǐng)求成功。但返回的meta信息不在原始的服務(wù)器趾徽,而是一個(gè)副本
204
No Content
無(wú)內(nèi)容续滋。服務(wù)器成功處理,但未返回內(nèi)容孵奶。在未更新網(wǎng)頁(yè)的情況下疲酌,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔
205
Reset Content
重置內(nèi)容。服務(wù)器處理成功了袁,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖朗恳。可通過(guò)此返回碼清除瀏覽器的表單域
206
Partial Content
部分內(nèi)容载绿。服務(wù)器成功處理了部分GET請(qǐng)求
300
Multiple Choices
多種選擇粥诫。請(qǐng)求的資源可包括多個(gè)位置,相應(yīng)可返回一個(gè)資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇
301
Moved Permanently
永久移動(dòng)崭庸。請(qǐng)求的資源已被永久的移動(dòng)到新URI怀浆,返回信息會(huì)包括新的URI,瀏覽器會(huì)自動(dòng)定向到新URI怕享。今后任何新的請(qǐng)求都應(yīng)使用新的URI代替
302
Found
臨時(shí)移動(dòng)执赡。與301類(lèi)似。但資源只是臨時(shí)被移動(dòng)函筋∩澈希客戶端應(yīng)繼續(xù)使用原有URI
303
See Other
查看其它地址。與301類(lèi)似跌帐。使用GET和POST請(qǐng)求查看
304
Not Modified
未修改首懈。所請(qǐng)求的資源未修改,服務(wù)器返回此狀態(tài)碼時(shí)谨敛,不會(huì)返回任何資源究履。客戶端通常會(huì)緩存訪問(wèn)過(guò)的資源佣盒,通過(guò)提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源
305
Use Proxy
使用代理挎袜。所請(qǐng)求的資源必須通過(guò)代理訪問(wèn)
306
Unused
已經(jīng)被廢棄的HTTP狀態(tài)碼
307
Temporary Redirect
臨時(shí)重定向顽聂。與302類(lèi)似肥惭。使用GET請(qǐng)求重定向
400
Bad Request
客戶端請(qǐng)求的語(yǔ)法錯(cuò)誤盯仪,服務(wù)器無(wú)法理解
401
Unauthorized
請(qǐng)求要求用戶的身份認(rèn)證
402
Payment Required
保留,將來(lái)使用
403
Forbidden
服務(wù)器理解請(qǐng)求客戶端的請(qǐng)求蜜葱,但是拒絕執(zhí)行此請(qǐng)求
404
Not Found
服務(wù)器無(wú)法根據(jù)客戶端的請(qǐng)求找到資源(網(wǎng)頁(yè))全景。通過(guò)此代碼,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請(qǐng)求的資源無(wú)法找到"的個(gè)性頁(yè)面
405
Method Not Allowed
客戶端請(qǐng)求中的方法被禁止
406
Not Acceptable
服務(wù)器無(wú)法根據(jù)客戶端請(qǐng)求的內(nèi)容特性完成請(qǐng)求
407
Proxy Authentication Required
請(qǐng)求要求代理的身份認(rèn)證牵囤,與401類(lèi)似爸黄,但請(qǐng)求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán)
408
Request Time-out
服務(wù)器等待客戶端發(fā)送的請(qǐng)求時(shí)間過(guò)長(zhǎng),超時(shí)
409
Conflict
服務(wù)器完成客戶端的PUT請(qǐng)求是可能返回此代碼揭鳞,服務(wù)器處理請(qǐng)求時(shí)發(fā)生了沖突
410
Gone
客戶端請(qǐng)求的資源已經(jīng)不存在炕贵。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼野崇,網(wǎng)站設(shè)計(jì)人員可通過(guò)301代碼指定資源的新位置
411
Length Required
服務(wù)器無(wú)法處理客戶端發(fā)送的不帶Content-Length的請(qǐng)求信息
412
Precondition Failed
客戶端請(qǐng)求信息的先決條件錯(cuò)誤
413
Request Entity Too Large
由于請(qǐng)求的實(shí)體過(guò)大称开,服務(wù)器無(wú)法處理,因此拒絕請(qǐng)求乓梨。為防止客戶端的連續(xù)請(qǐng)求鳖轰,服務(wù)器可能會(huì)關(guān)閉連接。如果只是服務(wù)器暫時(shí)無(wú)法處理扶镀,則會(huì)包含一個(gè)Retry-After的響應(yīng)信息
414
Request-URI Too Large
請(qǐng)求的URI過(guò)長(zhǎng)(URI通常為網(wǎng)址)蕴侣,服務(wù)器無(wú)法處理
415
Unsupported Media Type
服務(wù)器無(wú)法處理請(qǐng)求附帶的媒體格式
416
Requested range not satisfiable
客戶端請(qǐng)求的范圍無(wú)效
417
Expectation Failed
服務(wù)器無(wú)法滿足Expect的請(qǐng)求頭信息
500
Internal Server Error
服務(wù)器內(nèi)部錯(cuò)誤,無(wú)法??成請(qǐng)求
501
Not Implemented
服務(wù)器不支持請(qǐng)求的功能臭觉,無(wú)法完成請(qǐng)求
502
Bad Gateway
充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器昆雀,從遠(yuǎn)端服務(wù)器接收到了一個(gè)無(wú)效的請(qǐng)求
503
Service Unavailable
由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)的無(wú)法處理客戶端的請(qǐng)求蝠筑。延時(shí)的長(zhǎng)度可包含在服務(wù)器的Retry-After頭信息中
504
Gateway Time-out
充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器忆肾,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請(qǐng)求
505
HTTP Version not supported
服務(wù)器不支持請(qǐng)求的HTTP協(xié)議的版本,無(wú)法完成處理
常見(jiàn)錯(cuò)誤的處理方法:
500錯(cuò)誤
500錯(cuò)誤是站長(zhǎng)經(jīng)常遇到的問(wèn)題菱肖,就本人的經(jīng)驗(yàn)客冈,原因及解決方法歸納如下:
1、運(yùn)行的用戶數(shù)過(guò)多稳强,對(duì)服務(wù)器造成的壓力過(guò)大场仲,服務(wù)器無(wú)法響應(yīng),則報(bào)HTTP500錯(cuò)誤退疫。
這個(gè)原因是網(wǎng)站報(bào)500錯(cuò)誤的最主要原因渠缕,很多網(wǎng)站為什么突然會(huì)報(bào)500錯(cuò)誤(service unavailable)呢?90%是由于空間壓力過(guò)大褒繁,超出了空間商設(shè)定的上限而造成的亦鳞。
遇到這個(gè)問(wèn)題,最好是第一時(shí)間找到空間商的售后服務(wù),他們一般會(huì)幫你回收一下應(yīng)用程序池燕差,問(wèn)題便得到解決遭笋。如果沒(méi)有找到售后服務(wù),可以自己在空間管理后臺(tái)徒探,找到“回收應(yīng)用程序池”那個(gè)項(xiàng)目瓦呼,自己手動(dòng)執(zhí)行一下即可。不過(guò)测暗,一些空間管理后臺(tái)并沒(méi)有提供該項(xiàng)服務(wù)央串。
2、如果排除了第1的可能性碗啄,那么很大原因便是程序上出現(xiàn)了問(wèn)題质和。
可以做個(gè)簡(jiǎn)單的測(cè)試頁(yè)面,看是否能運(yùn)行成功稚字,再檢測(cè)報(bào)錯(cuò)的頁(yè)面侦另,從而針對(duì)性的進(jìn)行修改。
該做關(guān)聯(lián)的地方?jīng)]有去做關(guān)聯(lián)尉共,則報(bào)HTTP500錯(cuò)誤褒傅。進(jìn)行手工或者自動(dòng)關(guān)聯(lián),問(wèn)題得到解決袄友。
3殿托、如果測(cè)試中所進(jìn)行的操作需要向數(shù)據(jù)庫(kù)中插入數(shù)據(jù),若大數(shù)據(jù)量的情況下導(dǎo)致數(shù)據(jù)庫(kù)中表空間已滿剧蚣,或者緩沖池較小無(wú)法滿足數(shù)據(jù)的存取等支竹,都有可能導(dǎo)致HTTP500錯(cuò)誤。
解決方法是調(diào)整數(shù)據(jù)庫(kù)鸠按、修改連接池大小等等礼搁,根據(jù)個(gè)人具體情況進(jìn)行修正即可。