作為一個(gè)互聯(lián)網(wǎng)開發(fā)人員對(duì)于一些服務(wù)器返回的HTTP狀態(tài)的意思都必須是了如指掌的掀鹅,只有將這些狀態(tài)碼一一弄清楚,工作中遇到的各種問題才能夠處理的得心應(yīng)手次屠。所以下面就讓我們來了解一下比較常見的HTTP狀態(tài)碼吧园匹!
2**開頭 (請(qǐng)求成功)表示成功處理了請(qǐng)求的狀態(tài)代碼。
200 (成功) 服務(wù)器已成功處理了請(qǐng)求劫灶。 通常偎肃,這表示服務(wù)器提供了請(qǐng)求的網(wǎng)頁。
201 (已創(chuàng)建) 請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源浑此。
202 (已接受) 服務(wù)器已接受請(qǐng)求累颂,但尚未處理。
203 (非授權(quán)信息) 服務(wù)器已成功處理了請(qǐng)求凛俱,但返回的信息可能來自另一來源紊馏。
204 (無內(nèi)容) 服務(wù)器成功處理了請(qǐng)求,但沒有返回任何內(nèi)容蒲犬。
205 (重置內(nèi)容) 服務(wù)器成功處理了請(qǐng)求朱监,但沒有返回任何內(nèi)容。
206 (部分內(nèi)容) 服務(wù)器成功處理了部分 GET 請(qǐng)求原叮。
3** 開頭 (請(qǐng)求被重定向)表示要完成請(qǐng)求赫编,需要進(jìn)一步操作。 通常奋隶,這些狀態(tài)代碼用來重定向擂送。
300 (多種選擇) 針對(duì)請(qǐng)求,服務(wù)器可執(zhí)行多種操作唯欣。 服務(wù)器可根據(jù)請(qǐng)求者 (user agent) 選擇一項(xiàng)操作嘹吨,或提供操作列表供請(qǐng)求者選擇。
301 (永久移動(dòng)) 請(qǐng)求的網(wǎng)頁已永久移動(dòng)到新位置境氢。 服務(wù)器返回此響應(yīng)(對(duì) GET 或 HEAD 請(qǐng)求的響應(yīng))時(shí)蟀拷,會(huì)自動(dòng)將請(qǐng)求者轉(zhuǎn)到新位置。
302 (臨時(shí)移動(dòng)) 服務(wù)器目前從不同位置的網(wǎng)頁響應(yīng)請(qǐng)求萍聊,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請(qǐng)求问芬。
303 (查看其他位置) 請(qǐng)求者應(yīng)當(dāng)對(duì)不同的位置使用單獨(dú)的 GET 請(qǐng)求來檢索響應(yīng)時(shí),服務(wù)器返回此代碼寿桨。
304 (未修改) 自從上次請(qǐng)求后此衅,請(qǐng)求的網(wǎng)頁未修改過。 服務(wù)器返回此響應(yīng)時(shí),不會(huì)返回網(wǎng)頁內(nèi)容炕柔。
305 (使用代理) 請(qǐng)求者只能使用代理訪問請(qǐng)求的網(wǎng)頁。 如果服務(wù)器返回此響應(yīng)媒佣,還表示請(qǐng)求者應(yīng)使用代理匕累。
307 (臨時(shí)重定向) 服務(wù)器目前從不同位置的網(wǎng)頁響應(yīng)請(qǐng)求,但請(qǐng)求者應(yīng)繼續(xù)使用原有位置來進(jìn)行以后的請(qǐng)求默伍。
4**開頭 (請(qǐng)求錯(cuò)誤)這些狀態(tài)代碼表示請(qǐng)求可能出錯(cuò)欢嘿,妨礙了服務(wù)器的處理。
400 (錯(cuò)誤請(qǐng)求) 服務(wù)器不理解請(qǐng)求的語法也糊。
401 (未授權(quán)) 請(qǐng)求要求身份驗(yàn)證炼蹦。 對(duì)于需要登錄的網(wǎng)頁,服務(wù)器可能返回此響應(yīng)狸剃。
403 (禁止) 服務(wù)器拒絕請(qǐng)求掐隐。
404 (未找到) 服務(wù)器找不到請(qǐng)求的網(wǎng)頁。
405 (方法禁用) 禁用請(qǐng)求中指定的方法钞馁。
406 (不接受) 無法使用請(qǐng)求的內(nèi)容特性響應(yīng)請(qǐng)求的網(wǎng)頁虑省。
407 (需要代理授權(quán)) 此狀態(tài)代碼與 401(未授權(quán))類似,但指定請(qǐng)求者應(yīng)當(dāng)授權(quán)使用代理僧凰。
408 (請(qǐng)求超時(shí)) 服務(wù)器等候請(qǐng)求時(shí)發(fā)生超時(shí)探颈。
409 (沖突) 服務(wù)器在完成請(qǐng)求時(shí)發(fā)生沖突。 服務(wù)器必須在響應(yīng)中包含有關(guān)沖突的信息训措。
410 (已刪除) 如果請(qǐng)求的資源已永久刪除伪节,服務(wù)器就會(huì)返回此響應(yīng)。
411 (需要有效長度) 服務(wù)器不接受不含有效內(nèi)容長度標(biāo)頭字段的請(qǐng)求绩鸣。
412 (未滿足前提條件) 服務(wù)器未滿足請(qǐng)求者在請(qǐng)求中設(shè)置的其中一個(gè)前提條件怀大。
413 (請(qǐng)求實(shí)體過大) 服務(wù)器無法處理請(qǐng)求,因?yàn)檎?qǐng)求實(shí)體過大呀闻,超出服務(wù)器的處理能力叉寂。
414 (請(qǐng)求的 URI 過長) 請(qǐng)求的 URI(通常為網(wǎng)址)過長,服務(wù)器無法處理总珠。
415 (不支持的媒體類型) 請(qǐng)求的格式不受請(qǐng)求頁面的支持屏鳍。
416 (請(qǐng)求范圍不符合要求) 如果頁面無法提供請(qǐng)求的范圍,則服務(wù)器會(huì)返回此狀態(tài)代碼局服。
417 (未滿足期望值) 服務(wù)器未滿足"期望"請(qǐng)求標(biāo)頭字段的要求钓瞭。
5**開頭(服務(wù)器錯(cuò)誤)這些狀態(tài)代碼表示服務(wù)器在嘗試處理請(qǐng)求時(shí)發(fā)生內(nèi)部錯(cuò)誤。 這些錯(cuò)誤可能是服務(wù)器本身的錯(cuò)誤淫奔,而不是請(qǐng)求出錯(cuò)山涡。
500 (服務(wù)器內(nèi)部錯(cuò)誤) 服務(wù)器遇到錯(cuò)誤,無法完成請(qǐng)求。
501 (尚未實(shí)施) 服務(wù)器不具備完成請(qǐng)求的功能鸭丛。 例如竞穷,服務(wù)器無法識(shí)別請(qǐng)求方法時(shí)可能會(huì)返回此代碼。
502 (錯(cuò)誤網(wǎng)關(guān)) 服務(wù)器作為網(wǎng)關(guān)或代理鳞溉,從上游服務(wù)器收到無效響應(yīng)瘾带。
503 (服務(wù)不可用) 服務(wù)器目前無法使用(由于超載或停機(jī)維護(hù))。 通常熟菲,這只是暫時(shí)狀態(tài)看政。
504 (網(wǎng)關(guān)超時(shí)) 服務(wù)器作為網(wǎng)關(guān)或代理,但是沒有及時(shí)從上游服務(wù)器收到請(qǐng)求抄罕。
505 (HTTP 版本不受支持) 服務(wù)器不支持請(qǐng)求中所用的 HTTP 協(xié)議版本允蚣。
1xx - 信息提示
這些狀態(tài)代碼表示臨時(shí)的響應(yīng)〈艋撸客戶端在收到常規(guī)響應(yīng)之前嚷兔,應(yīng)準(zhǔn)備接收一個(gè)或多個(gè) 1xx 響應(yīng)。
· 100 - Continue 初始的請(qǐng)求已經(jīng)接受做入,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分谴垫。(HTTP 1.1新)
· 101 - Switching Protocols 服務(wù)器將遵從客戶的請(qǐng)求轉(zhuǎn)換到另外一種協(xié)議(HTTP 1.1新)
2xx - 成功
這類狀態(tài)代碼表明服務(wù)器成功地接受了客戶端請(qǐng)求。
· 200 - OK 一切正常母蛛,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面翩剪。
· 201 - Created 服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL彩郊。
· 202 - Accepted 已經(jīng)接受請(qǐng)求前弯,但處理尚未完成。
· 203 - Non-Authoritative Information 文檔已經(jīng)正常地返回秫逝,但一些應(yīng)答頭可能不正確恕出,因?yàn)槭褂玫氖俏臋n的拷貝,非權(quán)威性信息(HTTP 1.1新)违帆。
· 204 - No Content 沒有新文檔浙巫,瀏覽器應(yīng)該繼續(xù)顯示原來的文檔。如果用戶定期地刷新頁面刷后,而Servlet可以確定用戶文檔足夠新的畴,這個(gè)狀態(tài)代碼是很有用的。
· 205 - Reset Content 沒有新的內(nèi)容尝胆,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容丧裁。用來強(qiáng)制瀏覽器清除表單輸入內(nèi)容(HTTP 1.1新)。
· 206 - Partial Content 客戶發(fā)送了一個(gè)帶有Range頭的GET請(qǐng)求(分塊請(qǐng)求)含衔,服務(wù)器完成了它(HTTP 1.1新)煎娇。
3xx - 重定向
客戶端瀏覽器必須采取更多操作來實(shí)現(xiàn)請(qǐng)求二庵。例如,瀏覽器可能不得不請(qǐng)求服務(wù)器上的不同的頁面缓呛,或通過代理服務(wù)器重復(fù)該請(qǐng)求催享。
· 300 - Multiple Choices 客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出哟绊。如果服務(wù)器要提出優(yōu)先選擇因妙,則應(yīng)該在Location應(yīng)答頭指明。
· 301 - Moved Permanently 客戶請(qǐng)求的文檔在其他地方匿情,新的URL在Location頭中給出兰迫,瀏覽器應(yīng)該自動(dòng)地訪問新的URL信殊。
· 302 - Found 類似于301炬称,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的涡拘。注意玲躯,在HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“Moved Temporatily”。出現(xiàn)該狀態(tài)代碼時(shí)鳄乏,瀏覽器能
夠自動(dòng)訪問新的URL跷车,因此它是一個(gè)很有用的狀態(tài)代碼。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使 用橱野。例如朽缴,如果瀏覽器錯(cuò)誤地請(qǐng)求 http://host/~user (缺少了后面的斜杠)
,有的服務(wù)器返回301水援,有的則返回302密强。嚴(yán)格地說,我們只能假定只有當(dāng)原來的請(qǐng)求是GET時(shí)瀏覽器才會(huì)自動(dòng)重定向蜗元。請(qǐng)參見307或渤。
· 303 - See Other 類似于301/302,不同之處在于奕扣,如果原來的請(qǐng)求是POST薪鹦,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過GET提取(HTTP 1.1新)惯豆。
· 304 - Not Modified 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)池磁。服務(wù)器告訴客戶,原來緩沖的
文檔還可以繼續(xù)使用楷兽。
· 305 - Use Proxy 客戶請(qǐng)求的文檔應(yīng)該通過Location頭所指明的代理服務(wù)器提瓤蜃小(HTTP 1.1新)。
· 307 - Temporary Redirect 和302(Found)相同拄养。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)行重定向离斩,即使原來的請(qǐng)求是POST银舱,即使它實(shí)際上只能在POST請(qǐng)求的應(yīng)答是303時(shí) 才能重
定向。由于這個(gè)原因跛梗,HTTP 1.1新增了307寻馏,以便更加清除地區(qū)分幾個(gè)狀態(tài)代碼:當(dāng)出現(xiàn)303應(yīng)答時(shí),瀏覽器可以跟隨重定向的GET和POST請(qǐng)求核偿;如果是307應(yīng)答诚欠,則瀏覽器只 能跟隨
對(duì)GET請(qǐng)求的重定向。(HTTP 1.1新)
4xx - 客戶端錯(cuò)誤
發(fā)生錯(cuò)誤漾岳,客戶端似乎有問題轰绵。例如,客戶端請(qǐng)求不存在的頁面尼荆,客戶端未提供有效的身份驗(yàn)證信息左腔。
· 400 - Bad Request 請(qǐng)求出現(xiàn)語法錯(cuò)誤。
· 401 - Unauthorized 訪問被拒絕捅儒,客戶試圖未經(jīng)授權(quán)訪問受密碼保護(hù)的頁面液样。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框巧还,然后在 填寫合
適的Authorization頭后再次發(fā)出請(qǐng)求鞭莽。IIS 定義了許多不同的 401 錯(cuò)誤,它們指明更為具體的錯(cuò)誤原因麸祷。這些具體的錯(cuò)誤代碼在瀏覽器中顯示澎怒,但不在 IIS 日志中顯示:
· 401.1 - 登錄失敗。
· 401.2 - 服務(wù)器配置導(dǎo)致登錄失敗阶牍。
· 401.3 - 由于 ACL 對(duì)資源的限制而未獲得授權(quán)喷面。
· 401.4 - 篩選器授權(quán)失敗。
· 401.5 - ISAPI/CGI 應(yīng)用程序授權(quán)失敗荸恕。
· 401.7 – 訪問被 Web 服務(wù)器上的 URL 授權(quán)策略拒絕乖酬。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用。
· 403 - Forbidden 資源不可用融求。服務(wù)器理解客戶的請(qǐng)求咬像,但拒絕處理它。通常由于服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致生宛。禁止訪問:IIS 定義了許多不同的 403 錯(cuò)誤县昂,它們指
明更為具體的錯(cuò)誤原因:
· 403.1 - 執(zhí)行訪問被禁止。
· 403.2 - 讀訪問被禁止陷舅。
· 403.3 - 寫訪問被禁止倒彰。
· 403.4 - 要求 SSL。
· 403.5 - 要求 SSL 128莱睁。
· 403.6 - IP 地址被拒絕待讳。
· 403.7 - 要求客戶端證書芒澜。
· 403.8 - 站點(diǎn)訪問被拒絕。
· 403.9 - 用戶數(shù)過多创淡。
· 403.10 - 配置無效痴晦。
· 403.11 - 密碼更改。
· 403.12 - 拒絕訪問映射表琳彩。
· 403.13 - 客戶端證書被吊銷誊酌。
· 403.14 - 拒絕目錄列表。
· 403.15 - 超出客戶端訪問許可露乏。
· 403.16 - 客戶端證書不受信任或無效碧浊。
· 403.17 - 客戶端證書已過期或尚未生效。
· 403.18 - 在當(dāng)前的應(yīng)用程序池中不能執(zhí)行所請(qǐng)求的 URL瘟仿。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用箱锐。
· 403.19 - 不能為這個(gè)應(yīng)用程序池中的客戶端執(zhí)行 CGI。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用猾骡。
· 403.20 - Passport 登錄失敗瑞躺。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用敷搪。
· 404 - Not Found 無法找到指定位置的資源兴想。這也是一個(gè)常用的應(yīng)答。
· 404.0 -(無) – 沒有找到文件或目錄赡勘。
· 404.1 - 無法在所請(qǐng)求的端口上訪問 Web 站點(diǎn)嫂便。
· 404.2 - Web 服務(wù)擴(kuò)展鎖定策略阻止本請(qǐng)求。
· 404.3 - MIME 映射策略阻止本請(qǐng)求闸与。
· 405 - Method Not Allowed 請(qǐng)求方法(GET毙替、POST、HEAD践樱、DELETE厂画、PUT、TRACE等)對(duì)指定的資源不適用拷邢,用來訪問本頁面的 HTTP 謂詞不被允許(方法不被允許)(HTTP 1.1
新)
· 406 - Not Acceptable 指定的資源已經(jīng)找到袱院,但它的MIME類型和客戶在Accpet頭中所指定的不兼容,客戶端瀏覽器不接受所請(qǐng)求頁面的 MIME 類型(HTTP 1.1新)瞭稼。
· 407 - Proxy Authentication Required 要求進(jìn)行代理身份驗(yàn)證忽洛,類似于401,表示客戶必須先經(jīng)過代理服務(wù)器的授權(quán)环肘。(HTTP 1.1新)
· 408 - Request Timeout 在服務(wù)器許可的等待時(shí)間內(nèi)欲虚,客戶一直沒有發(fā)出任何請(qǐng)求』诒ⅲ客戶可以在以后重復(fù)同一請(qǐng)求复哆。(HTTP 1.1新)
· 409 - Conflict 通常和PUT請(qǐng)求有關(guān)欣喧。由于請(qǐng)求和資源的當(dāng)前狀態(tài)相沖突,因此請(qǐng)求不能成功梯找。(HTTP 1.1新)
· 410 - Gone 所請(qǐng)求的文檔已經(jīng)不再可用续誉,而且服務(wù)器不知道應(yīng)該重定向到哪一個(gè)地址。它和404的不同在于初肉,返回407表示文檔永久地離開了指定的位置膝藕,而404表示由于未知的
原因文檔不可用悦昵。(HTTP 1.1新)
· 411 - Length Required 服務(wù)器不能處理請(qǐng)求,除非客戶發(fā)送一個(gè)Content-Length頭。(HTTP 1.1新)
· 412 - Precondition Failed 請(qǐng)求頭中指定的一些前提條件失斆⒒(HTTP 1.1新)。
· 413 – Request Entity Too Large 目標(biāo)文檔的大小超過服務(wù)器當(dāng)前愿意處理的大小霞扬。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求键耕,則應(yīng)該提供一個(gè)Retry-After頭(HTTP 1.1
新)。
· 414 - Request URI Too Long URI太長(HTTP 1.1新)丁寄。
· 415 – 不支持的媒體類型氨淌。
· 416 – Requested Range Not Satisfiable 服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭。(HTTP 1.1新) · 417 – 執(zhí)行失敗伊磺。
· 423 – 鎖定的錯(cuò)誤盛正。
5xx - 服務(wù)器錯(cuò)誤
服務(wù)器由于遇到錯(cuò)誤而不能完成該請(qǐng)求。
· 500 - Internal Server Error 服務(wù)器遇到了意料不到的情況屑埋,不能完成客戶的請(qǐng)求豪筝。
· 500.12 - 應(yīng)用程序正忙于在 Web 服務(wù)器上重新啟動(dòng)。
· 500.13 - Web 服務(wù)器太忙摘能。
· 500.15 - 不允許直接請(qǐng)求 Global.asa续崖。
· 500.16 – UNC 授權(quán)憑據(jù)不正確。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用团搞。
· 500.18 – URL 授權(quán)存儲(chǔ)不能打開严望。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用。
· 500.100 - 內(nèi)部 ASP 錯(cuò)誤逻恐。
· 501 - Not Implemented 服務(wù)器不支持實(shí)現(xiàn)請(qǐng)求所需要的功能像吻,頁眉值指定了未實(shí)現(xiàn)的配置。例如梢莽,客戶發(fā)出了一個(gè)服務(wù)器不支持的PUT請(qǐng)求萧豆。
· 502 - Bad Gateway 服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問下一個(gè)服務(wù)器昏名,但該服務(wù)器返回了非法的應(yīng)答涮雷。 亦說Web 服務(wù)器用作網(wǎng)關(guān)或代理服務(wù)器時(shí)收到了無效響應(yīng)
。
· 502.1 - CGI 應(yīng)用程序超時(shí)轻局。
· 502.2 - CGI 應(yīng)用程序出錯(cuò)洪鸭。
· 503 - Service Unavailable 服務(wù)不可用样刷,服務(wù)器由于維護(hù)或者負(fù)載過重未能應(yīng)答。例如览爵,Servlet可能在數(shù)據(jù)庫連接池已滿的情況下返回503置鼻。服務(wù)器返回503時(shí)可以提供一個(gè)
Retry-After頭。這個(gè)錯(cuò)誤代碼為 IIS 6.0 所專用蜓竹。
· 504 - Gateway Timeout 網(wǎng)關(guān)超時(shí)箕母,由作為代理或網(wǎng)關(guān)的服務(wù)器使用,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲得應(yīng)答俱济。(HTTP 1.1新) 嘶是。
· 505 - HTTP Version Not Supported 服務(wù)器不支持請(qǐng)求中所指明的HTTP版本。(HTTP 1.1新)
----下面判斷是否是圖片蛛碌,而返回的狀態(tài)碼聂喇!------
try
{
System.Drawing.Image img = System.Drawing.Image.FromStream(postedFile.InputStream);
postedFile.SaveAs(savepath + @"\" + sNewFileName + sExtension);
context.Response.Write(tempPath + sNewFileName + sExtension);
context.Response.StatusCode = 200;
}
catch (ArgumentException ex)
{
context.Response.Write(ex.Message);
context.Response.StatusCode = 403;
}