前兩天,在豆瓣上看到一個講解HTTP狀態碼的文章,覺得很搞笑。雖說我也是搞IT的,也經常見到服務器返回的各種HTTP狀態碼,但是真沒認真去了解過這個東東。藉此機會,我也蒐集了一下HTTP狀態碼的相關資料,和大家分享一下。
HTTP狀態碼(HTTP Status Code)是用以表示網頁服務器HTTP響應狀態的3位數字代碼。它由 RFC2616 規範定義的,並得到RFC2518、RFC2817、RFC2295、RFC2774、RFC2918等規範擴展。
HTTP狀態碼一共分爲五類。狀態碼的第一個數字代表了響應的五種狀態之一。分類如下:
分類 | 含義 |
---|---|
1XX | 表示消息。這一類型的狀態碼,代表請求已被接受,需要繼續處理。這類響應是臨時響應,只包含狀態行和某些可選的響應頭信息,並以空行結束。 |
2XX | 表示成功。這一類型的狀態碼,代表請求已成功被服務器接收、理解、並接受。 |
3XX | 表示重定向。這類狀態碼代表需要客戶端採取進一步的操作才能完成請求。通常,這些狀態碼用來重定向,後續的請求地址(重定向目標)在本次響應的Location域中指明。 |
4XX | 表示請求錯誤。這類的狀態碼代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理。除非響應的是一個HEAD請求,否則服務器就應該返回一個解釋當前錯誤狀況的實體,以及這是臨時的還是永久性的狀況。這些狀態碼適用於任何請求方法。瀏覽器應當向用戶顯示任何包含在此類錯誤響應中的實體內容。 |
5XX | 表示服務器錯誤。這類狀態碼代表了服務器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。除非這是一個HEAD請求,否則服務器應當包含一個解釋當前錯誤狀態以及這個狀況是臨時的還是永久的解釋信息實體。瀏覽器應當向用戶展示任何在當前響應中被包含的實體。 |
下面,我們就開始趣解HTTP狀態碼。(少兒不宜,十八歲以下禁止觀看啊。哈哈…)
狀態碼 | 英/中雙解 | 漢語解釋 | 趣解 |
---|---|---|---|
1XX—表示消息。這一類型的狀態碼,代表請求已被接受,需要繼續處理。 | |||
100 | Continue/繼續 | 客戶端應當繼續發送請求。 | 人家… 還要… |
101 | Switching Protocols/轉換協議 | 服務器已經理解了客戶端的請求,並將通過Upgrade消息頭通知客戶端採用不同的協議來完成這個請求。 | 服務姬傲嬌中 |
102 | Processing | 由WebDAV(RFC 2518)擴展的狀態碼,代表處理將被繼續執行。 | 造人中… |
2XX—表示成功。代表請求已成功被服務器接收、理解、並接受。 | |||
200 | OK/正常 | 請求已成功,請求所希望的響應頭或數據體將隨此響應返回。 | 歡迎回來, 主人 |
201 | Created/已創建 | 表示服務器在請求的響應中建立了新文檔;應在定位頭信息中給出它的URL。 | |
202 | Accepted/接受 | 服務器已接受請求,但尚未處理完。 | |
203 | Non-Authoritative Information/非官方信息 | 表示文檔被正常的返回,但是由於正在使用的是文檔副本所以某些響應頭信息可能不正確。 | 俺是小三 |
204 | No Content/無內容 | 表示服務器成功處理了請求,但不需要返回任何實體內容,並且希望返回更新了的元信息。在並沒有新文檔的情況下,確保瀏覽器繼續顯示先前的文檔。 | 小姐呢?!怎麼沒有? |
205 | Reset Content/重置內容 | 意思是雖然沒有新文檔但瀏覽器要重置文檔顯示。這個狀態碼用於強迫瀏覽器清除表單域。 | 先生,給你換個小姐? |
206 | Partial Content/局部內容 | 該請求必須包含Range頭信息來指示客戶端希望得到的內容範圍,並且可能包含If-Range來作爲請求條件。 | |
207 | Multi-Status/多種狀態 | 由WebDAV(RFC 2518)擴展的狀態碼,代表之後的消息體將是一個XML消息,並且可能依照之前子請求數量的不同,包含一系列獨立的響應代碼。 | 搞個NP。嘿嘿… |
3xx—表示重定向。代表需要客戶端採取進一步的操作才能完成請求。 | |||
300 | Multiple Choices/多重選擇 | 表示被請求的文檔可以在多個地方找到,並將在返回的文檔中列出來。 | 先生,請點菜。 |
301 | Moved Permanently/永久遷移 | 指所請求的文檔在別的地方;文檔新的URL會在定位響應頭信息中給出。瀏覽器會自動連接到新的URL。 | 人家搬家了 |
302 | Found/找到 | 與301有些類似,只是定位頭信息中所給的URL應被理解爲臨時交換地址而不是永久的。 | 親,先等下啦,人家先去洗白白嘛。。。 |
303 | See Other/參見其他信息 | 和 301、302 相似,只是如果最初的請求是 POST,那麼新文檔(在定位頭信息中給出)藥用 GET 找回。 | |
304 | Not Modified/沒有修改 | 如果客戶端發送了一個帶條件的GET請求且該請求已被允許,而文檔的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則服務器應當返回這個狀態碼。304響應禁止包含消息體,因此始終以消息頭後的第一個空行結尾。 | 好久不見,還是風味猶存啊。 |
305 | Use Proxy/使用代理 | 表示所請求的文檔要通過定位頭信息中的代理服務器獲得。 | 泡妞是需要拉皮條的。 |
306 | Switch Proxy/切換代理 | 在最新版的規範中,306狀態碼已經不再被使用。 | 這店裏的雞太差了,換個。 |
307 | Temporary Redirect/臨時重定向 | 在響應爲303時按照GET和POST請求轉向;而在307響應時則按照GET請求轉向而不是POST請求。 | 不是這裏, 換個地方啦 |
4xx—表示請求錯誤。代表客戶端可能發生了錯誤,妨礙服務器的處理。 | |||
400 | Bad Request/錯誤請求 | 指出客戶端請求中的語法錯誤。 | 不要把奇怪的東西給人家嘛 |
401 | Unauthorized/未授權 | 表示客戶端在授權頭信息中沒有有效的身份信息時訪問受到密碼保護的頁面。 | 對上對聯,才讓進洞房。 |
403 | Forbidden/禁止 | 表示除非擁有授權否則服務器拒絕提供所請求的資源。 | 這裏不可以啦! |
404 | Not Found/未找到 | 告訴客戶端所給的地址無法找到任何資源。 | 這裏什麼都沒有 — 人家是平的啦 |
405 | Method Not Allowed/方法未允許 | 表示請求方法(GET, POST, HEAD, PUT, DELETE, 等)對某些特定的資源不允許使用。 | 打開方式不對 |
406 | Not Acceptable/無法訪問 | 表示請求資源的MIME類型與客戶端中Accept頭信息中指定的類型不一致。 | 啊啊啊,慢着!!好疼 |
407 | Proxy Authentication Required/代理服務器認證要求 | 該狀態指出客戶端必須通過代理服務器的認證。 | |
408 | Request Timeout/請求超時 | 指服務端等待客戶端發送請求的時間過長。 | |
409 | Conflict/衝突 | 該狀態通常與PUT請求一同使用,409 狀態常被用於試圖上傳版本不正確的文件時。 | 找小姐找到了自己媳婦,然後… |
410 | Gone/已經不存在 | 告訴客戶端所請求的文檔已經不存在並且沒有更新的地址。410狀態不同於404,410是在指導文檔已被移走的情況下使用,而404則用於未知原因的無法訪問。 | 那個,你是個好人…… |
411 | Length Required/需要數據長度 | 表示服務器不能處理請求,除非客戶端發送Content-Length頭信息指出發送給服務器的數據的大小。 | 太長了…進不去 |
412 | Precondition Failed/先決條件錯誤 | 指出請求頭信息中的某些先決條件是錯誤的。 | 先買房,然後才能結婚。 |
413 | Request Entity Too Large/請求實體過大 | 告訴客戶端現在所請求的文檔比服務器現在想要處理的要大。 | |
414 | Request URI Too Long/請求URI過長 | 用於在URI過長的情況時。這裏所指的"URI"是指URL中主機、域名及端口號之後的內容。 | 這… 太長了啦 |
415 | Unsupported Media Type/不支持的媒體格式 | 意味着請求所帶的附件的格式類型服務器不知道如何處理。 | 石女 |
416 | Requested Range Not Satisfiable/請求範圍無法滿足 | 表示客戶端包含了一個服務器無法滿足的Range頭信息的請求。 | |
417 | Expectation Failed/期望失敗 | 表示在請求頭Expect中指定的預期內容無法被服務器滿足。 | 沒房,只能分手了。 |
418 | I’m a teapot/我是杯具 | 本操作碼是在1998年作爲IETF的傳統愚人節笑話,並不需要在真實的HTTP服務器中定義。 | 我就是個杯具啊 |
421 | There are too many connections from your internet address/該IP發起的鏈接過多。 | 從當前客戶端所在的IP地址到服務器的連接數超過了服務器許可的最大範圍。 | |
422 | Unprocessable Entity/錯誤實體 | 請求格式正確,但是由於含有語義錯誤,無法響應。 | |
423 | Locked/鎖定 | 當前資源被鎖定。 | |
424 | Failed Dependency/錯誤關聯 | 由於之前的某個請求發生的錯誤,導致當前請求失敗。 | |
425 | Unordered Collection/亂序集合 | 在WebDav Advanced Collections草案中定義,但是未出現在《WebDAV順序集協議》(RFC 3658)中。 | |
426 | Upgrade Required/升級要求 | 客戶端應當切換到TLS/1.0。 | |
428 | Precondition Required/要求先決條件 | 先決條件是客戶端發送 HTTP 請求時,如果想要請求能成功必須滿足一些預設的條件。 | 主人~~不要這麼快麼~人家還沒溼呢。 |
429 | Too Many Requests /太多請求 | 當你需要限制客戶端請求某個服務數量時,該狀態碼就很有用,也就是請求速度限制。 | 主人~~我快要受不了了~ |
431 | Request Header Fields Too Large /請求頭字段太大 | 某些情況下,客戶端發送 HTTP 請求頭會變得很大,那麼服務器可發送 431狀態碼 來指明該問題。 | 主人~~這麼大方不進去的~~ |
449 | Retry With/稍後重試 | 由微軟擴展,代表請求應當在執行完適當的操作後進行重試。 | |
451 | Unavailable for Legal Reasons/正被審查 | 代表那些因爲法律原因而倒下的網站。 | 不要啦我們還沒領證呀 |
5XX—表示服務器錯誤。代表服務器在處理請求的過程中異常狀態發生。 | |||
500 | Internal Server Error/內部服務器錯誤 | 服務器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。 | 糟了,身體變得有點奇怪了 |
501 | Not Implemented/未實現 | 服務器不支持當前請求所需要的某個功能。 | |
502 | Bad Gateway/錯誤的網關 | 作爲網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。 | 進錯了嗎? |
503 | Service Unavailable/服務無法獲得 | 表示服務器由於在維護或已經超載而無法響應。 | 不要…人家還沒準備好啦 |
504 | Gateway Timeout/網關超時 | 指出接收服務器沒有從遠端服務器得到及時的響應。 | |
505 | HTTP Version Not Supported/不支持的 HTTP 版本 | 表示服務器並不支持在請求中所標明 HTTP 版本。 | 放開我,放開我,不要中出啊,會懷孕的(但其實是男生,不會懷孕) |
506 | Variant Also Negotiates | 代表服務器存在內部配置錯誤:被請求的協商變元資源被配置爲在透明內容協商中使用自己,因此在一個協商處理中不是一個合適的重點。 | |
507 | Insufficient Storage | 服務器無法存儲完成請求所必須的內容。 | 都流出來了… |
509 | Bandwidth Limit Exceeded | 服務器達到帶寬限制。這不是一個官方的狀態碼,但是仍被廣泛使用。 | 今天不接客了 |
510 | Not Extended | 獲取資源所需要的策略並沒有沒滿足。 | 沒車沒錢還想泡妞? |
511 | Network Authentication Required /要求網絡認證 | 在你想使用web服務的時候需要重定向到認證頁面,在走HTTP通信中都是這麼做的, | 主人~~不要矇住我的眼睛~會好興奮的!~ |
注:
RFC-Request For Comments是由Internet Society(ISOC)贊助發行,用於定義基本的互聯網通信協議的一些列文件。文中所用的RFC文件地址如下:
表格中,斜體字的“中英雙解”是我自己翻譯的。如果不正確,請留指正。
428、429、431以及511是2012年4月發佈的 RFC6585手冊中新增的4個狀態碼。
451是XML標準發明人之一、Android開發人員Tim Bray提議設立一個新的HTTP錯誤代碼。這個還沒有成爲正式標準。
參考資料
作 者: D瓜哥,http://www.diguage.com/
原文鏈接:http://www.diguage.com/archives/33.html
版權聲明:非特殊聲明均爲本站原創作品,轉載時請註明作者和原文鏈接。
原文鏈接:http://www.diguage.com/archives/33.html
版權聲明:非特殊聲明均爲本站原創作品,轉載時請註明作者和原文鏈接。