TTP 響應(yīng)狀態(tài)碼
HTTP 響應(yīng)狀態(tài)碼用來(lái)表明特定 HTTP 請(qǐng)求是否成功完成。 響應(yīng)被歸為以下五大類:
1、信息響應(yīng) (100–199)
2、成功響應(yīng) (200–299)
3、重定向消息 (300–399)
4、客戶端錯(cuò)誤響應(yīng) (400–499)
5、服務(wù)端錯(cuò)誤響應(yīng) (500–599)
以下狀態(tài)碼由RFC 2616 - Hypertext Transfer Protocol -- HTTP/1.1定義。你可以在RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content中找到更新后的規(guī)范。
信息響應(yīng)
100 Continue
這個(gè)臨時(shí)響應(yīng)表明,迄今為止的所有內(nèi)容都是可行的,客戶端應(yīng)該繼續(xù)請(qǐng)求,如果已經(jīng)完成,則忽略它。
101 Switching Protocols
該代碼是響應(yīng)客戶端的 Upgrade (en-US) 請(qǐng)求頭發(fā)送的,指明服務(wù)器即將切換的協(xié)議。
102 Processing (WebDAV)
此代碼表示服務(wù)器已收到并正在處理該請(qǐng)求,但當(dāng)前沒有響應(yīng)可用。
103 Early Hints
此狀態(tài)代碼主要用于與 Link 鏈接頭一起使用,以允許用戶代理在服務(wù)器準(zhǔn)備響應(yīng)階段時(shí)開始預(yù)加載 preloading 資源。
成功響應(yīng)
200 OK
請(qǐng)求成功。成功的含義取決于 HTTP 方法:
GET: 資源已被提取并在消息正文中傳輸。
HEAD: 實(shí)體標(biāo)頭位于消息正文中。
PUT or POST: 描述動(dòng)作結(jié)果的資源在消息體中傳輸。
TRACE: 消息正文包含服務(wù)器收到的請(qǐng)求消息。
201 Created
該請(qǐng)求已成功,并因此創(chuàng)建了一個(gè)新的資源。這通常是在 POST 請(qǐng)求,或是某些 PUT 請(qǐng)求之后返回的響應(yīng)。
202 Accepted
請(qǐng)求已經(jīng)接收到,但還未響應(yīng),沒有結(jié)果。意味著不會(huì)有一個(gè)異步的響應(yīng)去表明當(dāng)前請(qǐng)求的結(jié)果,預(yù)期另外的進(jìn)程和服務(wù)去處理請(qǐng)求,或者批處理。
203 Non-Authoritative Information
服務(wù)器已成功處理了請(qǐng)求,但返回的實(shí)體頭部元信息不是在原始服務(wù)器上有效的確定集合,而是來(lái)自本地或者第三方的拷貝。當(dāng)前的信息可能是原始版本的子集或者超集。例如,包含資源的元數(shù)據(jù)可能導(dǎo)致原始服務(wù)器知道元信息的超集。使用此狀態(tài)碼不是必須的,而且只有在響應(yīng)不使用此狀態(tài)碼便會(huì)返回200 OK的情況下才是合適的。
204 No Content
對(duì)于該請(qǐng)求沒有的內(nèi)容可發(fā)送,但頭部字段可能有用。用戶代理可能會(huì)用此時(shí)請(qǐng)求頭部信息來(lái)更新原來(lái)資源的頭部緩存字段。
205 Reset Content
告訴用戶代理重置發(fā)送此請(qǐng)求的文檔。
206 Partial Content
當(dāng)從客戶端發(fā)送Range范圍標(biāo)頭以只請(qǐng)求資源的一部分時(shí),將使用此響應(yīng)代碼。
207 Multi-Status (en-US) (WebDAV)
對(duì)于多個(gè)狀態(tài)代碼都可能合適的情況,傳輸有關(guān)多個(gè)資源的信息。
208 Already Reported (en-US) (WebDAV)
在 DAV 里面使用 <dav:propstat> 響應(yīng)元素以避免重復(fù)枚舉多個(gè)綁定的內(nèi)部成員到同一個(gè)集合。
226 IM Used (en-US) (HTTP Delta encoding)
服務(wù)器已經(jīng)完成了對(duì)資源的GET請(qǐng)求,并且響應(yīng)是對(duì)當(dāng)前實(shí)例應(yīng)用的一個(gè)或多個(gè)實(shí)例操作結(jié)果的表示。
重定向消息
300 Multiple Choice
請(qǐng)求擁有多個(gè)可能的響應(yīng)。用戶代理或者用戶應(yīng)當(dāng)從中選擇一個(gè)。(沒有標(biāo)準(zhǔn)化的方法來(lái)選擇其中一個(gè)響應(yīng),但是建議使用指向可能性的 HTML 鏈接,以便用戶可以選擇。)
301 Moved Permanently
請(qǐng)求資源的 URL 已永久更改。在響應(yīng)中給出了新的 URL。
302 Found
此響應(yīng)代碼表示所請(qǐng)求資源的 URI 已 暫時(shí) 更改。未來(lái)可能會(huì)對(duì) URI 進(jìn)行進(jìn)一步的改變。因此,客戶機(jī)應(yīng)該在將來(lái)的請(qǐng)求中使用這個(gè)相同的 URI。
303 See Other
服務(wù)器發(fā)送此響應(yīng),以指示客戶端通過(guò)一個(gè) GET 請(qǐng)求在另一個(gè) URI 中獲取所請(qǐng)求的資源。
304 Not Modified
這是用于緩存的目的。它告訴客戶端響應(yīng)還沒有被修改,因此客戶端可以繼續(xù)使用相同的緩存版本的響應(yīng)。
305 Use Proxy 已棄用
在 HTTP 規(guī)范中定義,以指示請(qǐng)求的響應(yīng)必須被代理訪問(wèn)。由于對(duì)代理的帶內(nèi)配置的安全考慮,它已被棄用。
306 unused
此響應(yīng)代碼不再使用;它只是保留。它曾在 HTTP/1.1 規(guī)范的早期版本中使用過(guò)。
307 Temporary Redirect
服務(wù)器發(fā)送此響應(yīng),以指示客戶端使用在前一個(gè)請(qǐng)求中使用的相同方法在另一個(gè) URI 上獲取所請(qǐng)求的資源。這與 302 Found HTTP 響應(yīng)代碼具有相同的語(yǔ)義,但用戶代理 不能 更改所使用的 HTTP 方法:如果在第一個(gè)請(qǐng)求中使用了 POST,則在第二個(gè)請(qǐng)求中必須使用 POST
308 Permanent Redirect
這意味著資源現(xiàn)在永久位于由Location: HTTP Response 標(biāo)頭指定的另一個(gè) URI。這與 301 Moved Permanently HTTP 響應(yīng)代碼具有相同的語(yǔ)義,但用戶代理不能更改所使用的 HTTP 方法:如果在第一個(gè)請(qǐng)求中使用 POST,則必須在第二個(gè)請(qǐng)求中使用 POST。
客戶端錯(cuò)誤響應(yīng)
400 Bad Request
由于被認(rèn)為是客戶端錯(cuò)誤(例如,錯(cuò)誤的請(qǐng)求語(yǔ)法、無(wú)效的請(qǐng)求消息幀或欺騙性的請(qǐng)求路由),服務(wù)器無(wú)法或不會(huì)處理請(qǐng)求。
401 Unauthorized
雖然 HTTP 標(biāo)準(zhǔn)指定了"unauthorized",但從語(yǔ)義上來(lái)說(shuō),這個(gè)響應(yīng)意味著"unauthenticated"。也就是說(shuō),客戶端必須對(duì)自身進(jìn)行身份驗(yàn)證才能獲得請(qǐng)求的響應(yīng)。
402 Payment Required 實(shí)驗(yàn)性
此響應(yīng)代碼保留供將來(lái)使用。創(chuàng)建此代碼的最初目的是將其用于數(shù)字支付系統(tǒng),但是此狀態(tài)代碼很少使用,并且不存在標(biāo)準(zhǔn)約定。
403 Forbidden
客戶端沒有訪問(wèn)內(nèi)容的權(quán)限;也就是說(shuō),它是未經(jīng)授權(quán)的,因此服務(wù)器拒絕提供請(qǐng)求的資源。與 401 Unauthorized 不同,服務(wù)器知道客戶端的身份。
404 Not Found
服務(wù)器找不到請(qǐng)求的資源。在瀏覽器中,這意味著無(wú)法識(shí)別 URL。在 API 中,這也可能意味著端點(diǎn)有效,但資源本身不存在。服務(wù)器也可以發(fā)送此響應(yīng),而不是 403 Forbidden,以向未經(jīng)授權(quán)的客戶端隱藏資源的存在。這個(gè)響應(yīng)代碼可能是最廣為人知的,因?yàn)樗?jīng)常出現(xiàn)在網(wǎng)絡(luò)上。
405 Method Not Allowed
服務(wù)器知道請(qǐng)求方法,但目標(biāo)資源不支持該方法。例如,API 可能不允許調(diào)用DELETE來(lái)刪除資源。
406 Not Acceptable
當(dāng) web 服務(wù)器在執(zhí)行服務(wù)端驅(qū)動(dòng)型內(nèi)容協(xié)商機(jī)制后,沒有發(fā)現(xiàn)任何符合用戶代理給定標(biāo)準(zhǔn)的內(nèi)容時(shí),就會(huì)發(fā)送此響應(yīng)。
407 Proxy Authentication Required
類似于 401 Unauthorized 但是認(rèn)證需要由代理完成。
408 Request Timeout
此響應(yīng)由一些服務(wù)器在空閑連接上發(fā)送,即使客戶端之前沒有任何請(qǐng)求。這意味著服務(wù)器想關(guān)閉這個(gè)未使用的連接。由于一些瀏覽器,如 Chrome、Firefox 27+ 或 IE9,使用 HTTP 預(yù)連接機(jī)制來(lái)加速?zèng)_浪,所以這種響應(yīng)被使用得更多。還要注意的是,有些服務(wù)器只是關(guān)閉了連接而沒有發(fā)送此消息。
409 Conflict
當(dāng)請(qǐng)求與服務(wù)器的當(dāng)前狀態(tài)沖突時(shí),將發(fā)送此響應(yīng)。
410 Gone
當(dāng)請(qǐng)求的內(nèi)容已從服務(wù)器中永久刪除且沒有轉(zhuǎn)發(fā)地址時(shí),將發(fā)送此響應(yīng)。客戶端需要?jiǎng)h除緩存和指向資源的鏈接。HTTP 規(guī)范打算將此狀態(tài)代碼用于“有限時(shí)間的促銷服務(wù)”。API 不應(yīng)被迫指出已使用此狀態(tài)代碼刪除的資源。
411 Length Required
服務(wù)端拒絕該請(qǐng)求因?yàn)?Content-Length 頭部字段未定義但是服務(wù)端需要它。
412 Precondition Failed
客戶端在其頭文件中指出了服務(wù)器不滿足的先決條件。
413 Payload Too Large
請(qǐng)求實(shí)體大于服務(wù)器定義的限制。服務(wù)器可能會(huì)關(guān)閉連接,或在標(biāo)頭字段后返回重試 Retry-After。
414 URI Too Long
客戶端請(qǐng)求的 URI 比服務(wù)器愿意接收的長(zhǎng)度長(zhǎng)。
415 Unsupported Media Type
服務(wù)器不支持請(qǐng)求數(shù)據(jù)的媒體格式,因此服務(wù)器拒絕請(qǐng)求。
416 Range Not Satisfiable
無(wú)法滿足請(qǐng)求中 Range 標(biāo)頭字段指定的范圍。該范圍可能超出了目標(biāo) URI 數(shù)據(jù)的大小。
417 Expectation Failed
此響應(yīng)代碼表示服務(wù)器無(wú)法滿足 Expect 請(qǐng)求標(biāo)頭字段所指示的期望。
418 I'm a teapot
服務(wù)端拒絕用茶壺煮咖啡。笑話,典故來(lái)源茶壺沖泡咖啡
421 Misdirected Request
請(qǐng)求被定向到無(wú)法生成響應(yīng)的服務(wù)器。這可以由未配置為針對(duì)請(qǐng)求 URI 中包含的方案和權(quán)限組合生成響應(yīng)的服務(wù)器發(fā)送。
422 Unprocessable Entity (WebDAV)
請(qǐng)求格式正確,但由于語(yǔ)義錯(cuò)誤而無(wú)法遵循。
423 Locked (WebDAV)
正在訪問(wèn)的資源已鎖定。
424 Failed Dependency (WebDAV)
由于前一個(gè)請(qǐng)求失敗,請(qǐng)求失敗。
425 Too Early 實(shí)驗(yàn)性
表示服務(wù)器不愿意冒險(xiǎn)處理可能被重播的請(qǐng)求。
426 Upgrade Required
服務(wù)器拒絕使用當(dāng)前協(xié)議執(zhí)行請(qǐng)求,但在客戶端升級(jí)到其他協(xié)議后可能愿意這樣做。 服務(wù)端發(fā)送帶有Upgrade (en-US) 字段的 426 響應(yīng) 來(lái)表明它所需的協(xié)議(們)。
428 Precondition Required
源服務(wù)器要求請(qǐng)求是有條件的。此響應(yīng)旨在防止'丟失更新'問(wèn)題,即當(dāng)?shù)谌叫薷姆?wù)器上的狀態(tài)時(shí),客戶端 GET 獲取資源的狀態(tài),對(duì)其進(jìn)行修改并將其 PUT 放回服務(wù)器,從而導(dǎo)致沖突。
429 Too Many Requests
用戶在給定的時(shí)間內(nèi)發(fā)送了太多請(qǐng)求("限制請(qǐng)求速率")
431 Request Header Fields Too Large
服務(wù)器不愿意處理請(qǐng)求,因?yàn)槠漕^字段太大。在減小請(qǐng)求頭字段的大小后,可以重新提交請(qǐng)求。
451 Unavailable For Legal Reasons
用戶代理請(qǐng)求了無(wú)法合法提供的資源,例如政府審查的網(wǎng)頁(yè)。
服務(wù)端錯(cuò)誤響應(yīng)
500 Internal Server Error
服務(wù)器遇到了不知道如何處理的情況。
501 Not Implemented
服務(wù)器不支持請(qǐng)求方法,因此無(wú)法處理。服務(wù)器需要支持的唯二方法(因此不能返回此代碼)是 GET and HEAD.
502 Bad Gateway
此錯(cuò)誤響應(yīng)表明服務(wù)器作為網(wǎng)關(guān)需要得到一個(gè)處理這個(gè)請(qǐng)求的響應(yīng),但是得到一個(gè)錯(cuò)誤的響應(yīng)。
503 Service Unavailable
服務(wù)器沒有準(zhǔn)備好處理請(qǐng)求。常見原因是服務(wù)器因維護(hù)或重載而停機(jī)。請(qǐng)注意,與此響應(yīng)一起,應(yīng)發(fā)送解釋問(wèn)題的用戶友好頁(yè)面。這個(gè)響應(yīng)應(yīng)該用于臨時(shí)條件和如果可能的話,HTTP 標(biāo)頭 Retry-After 字段應(yīng)該包含恢復(fù)服務(wù)之前的估計(jì)時(shí)間。網(wǎng)站管理員還必須注意與此響應(yīng)一起發(fā)送的與緩存相關(guān)的標(biāo)頭,因?yàn)檫@些臨時(shí)條件響應(yīng)通常不應(yīng)被緩存。
504 Gateway Timeout
當(dāng)服務(wù)器充當(dāng)網(wǎng)關(guān)且無(wú)法及時(shí)獲得響應(yīng)時(shí),會(huì)給出此錯(cuò)誤響應(yīng)。
505 HTTP Version Not Supported
服務(wù)器不支持請(qǐng)求中使用的 HTTP 版本。
506 Variant Also Negotiates
服務(wù)器存在內(nèi)部配置錯(cuò)誤:所選的變體資源被配置為參與透明內(nèi)容協(xié)商本身,因此不是協(xié)商過(guò)程中的適當(dāng)終點(diǎn)。
507 Insufficient Storage (WebDAV)
無(wú)法在資源上執(zhí)行該方法,因?yàn)榉?wù)器無(wú)法存儲(chǔ)成功完成請(qǐng)求所需的表示。
508 Loop Detected (WebDAV)
服務(wù)器在處理請(qǐng)求時(shí)檢測(cè)到無(wú)限循環(huán)。
510 Not Extended
服務(wù)器需要對(duì)請(qǐng)求進(jìn)行進(jìn)一步擴(kuò)展才能完成請(qǐng)求。
511 Network Authentication Required
指示客戶端需要進(jìn)行身份驗(yàn)證才能獲得網(wǎng)絡(luò)訪問(wèn)權(quán)限。
參見
? “100″ : Continue(繼續(xù)) 初始的請(qǐng)求已經(jīng)接受,客戶應(yīng)當(dāng)繼續(xù)發(fā)送請(qǐng)求的其余部分。(HTTP 1.1新)
? “101″ : Switching Protocols(切換協(xié)議) 請(qǐng)求者已要求服務(wù)器切換協(xié)議,服務(wù)器已確認(rèn)并準(zhǔn)備進(jìn)行切換。(HTTP 1.1新)
? “200″ : OK(成功) 一切正常,對(duì)GET和POST請(qǐng)求的應(yīng)答文檔跟在后面。
? “201″ : Created(已創(chuàng)建)服務(wù)器已經(jīng)創(chuàng)建了文檔,Location頭給出了它的URL。
? “202″ : Accepted(已接受)服務(wù)器已接受了請(qǐng)求,但尚未對(duì)其進(jìn)行處理。
? “203″ : Non-Authoritative Information(非授權(quán)信息) 文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,可能來(lái)自另一來(lái)源 。(HTTP 1.1新)。
? “204″ : No Content(無(wú)內(nèi)容)未返回任何內(nèi)容,瀏覽器應(yīng)該繼續(xù)顯示原來(lái)的文檔。
? “205″ : Reset Content(重置內(nèi)容)沒有新的內(nèi)容,但瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來(lái)強(qiáng)制瀏覽器清除表單輸入內(nèi)容(HTTP 1.1新)。
? “206″ : Partial Content(部分內(nèi)容)服務(wù)器成功處理了部分 GET 請(qǐng)求。(HTTP 1.1新)
? “300″ : Multiple Choices(多種選擇)客戶請(qǐng)求的文檔可以在多個(gè)位置找到,這些位置已經(jīng)在返回的文檔內(nèi)列出。如果服務(wù)器要提出優(yōu)先選擇,則應(yīng)該在Location應(yīng)答頭指明。
? “301″ : Moved Permanently(永久移動(dòng))請(qǐng)求的網(wǎng)頁(yè)已被永久移動(dòng)到新位置。服務(wù)器返回此響應(yīng)(作為對(duì) GET 或 HEAD 請(qǐng)求的響應(yīng))時(shí),會(huì)自動(dòng)將請(qǐng)求者轉(zhuǎn)到新位置。
? “302″ : Found(臨時(shí)移動(dòng))類似于301,但新的URL應(yīng)該被視為臨時(shí)性的替代,而不是永久性的。注意,在HTTP1.0中對(duì)應(yīng)的狀態(tài)信息是“Moved Temporatily”,出現(xiàn)該狀態(tài)代碼時(shí),瀏覽器能夠自動(dòng)訪問(wèn)新的URL,因此它是一個(gè)很有用的狀態(tài)代碼。注意這個(gè)狀態(tài)代碼有時(shí)候可以和301替換使用。例如,如果瀏覽器錯(cuò)誤地請(qǐng)求http://host/~user(缺少了后面的斜杠),有的服務(wù)器返回301,有的則返回302。嚴(yán)格地說(shuō),我們只能假定只有當(dāng)原來(lái)的請(qǐng)求是GET時(shí)瀏覽器才會(huì)自動(dòng)重定向。請(qǐng)參見307。
? “303″ : See Other(查看其他位置)類似于301/302,不同之處在于,如果原來(lái)的請(qǐng)求是POST,Location頭指定的重定向目標(biāo)文檔應(yīng)該通過(guò)GET提取(HTTP 1.1新)。
? “304″ : Not Modified(未修改)自從上次請(qǐng)求后,請(qǐng)求的網(wǎng)頁(yè)未被修改過(guò)。原來(lái)緩沖的文檔還可以繼續(xù)使用,不會(huì)返回網(wǎng)頁(yè)內(nèi)容。
? “305″ : Use Proxy(使用代理)只能使用代理訪問(wèn)請(qǐng)求的網(wǎng)頁(yè)。如果服務(wù)器返回此響應(yīng),那么,服務(wù)器還會(huì)指明請(qǐng)求者應(yīng)當(dāng)使用的代理。(HTTP 1.1新)
? “307″ : Temporary Redirect(臨時(shí)重定向)和 302(Found)相同。許多瀏覽器會(huì)錯(cuò)誤地響應(yīng)302應(yīng)答進(jìn)行重定向,即使原來(lái)的請(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新)
? “400″ : Bad Request(錯(cuò)誤請(qǐng)求)請(qǐng)求出現(xiàn)語(yǔ)法錯(cuò)誤。
? “401″ : Unauthorized(未授權(quán))客戶試圖未經(jīng)授權(quán)訪問(wèn)受密碼保護(hù)的頁(yè)面。應(yīng)答中會(huì)包含一個(gè)WWW-Authenticate頭,瀏覽器據(jù)此顯示用戶名字/密碼對(duì)話框,然后在填寫合適的Authorization頭后再次發(fā)出請(qǐng)求。
? “403″ : Forbidden(已禁止) 資源不可用。服務(wù)器理解客戶的請(qǐng)求,但拒絕處理它。通常由于服務(wù)器上文件或目錄的權(quán)限設(shè)置導(dǎo)致。
? “404″ : Not Found(未找到)無(wú)法找到指定位置的資源。
? “405″ : Method Not Allowed(方法禁用)請(qǐng)求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)禁用。(HTTP 1.1新)
? “406″ : Not Acceptable(不接受)指定的資源已經(jīng)找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容(HTTP 1.1新)。
? “407″ : Proxy Authentication Required(需要代理授權(quán))類似于401,表示客戶必須先經(jīng)過(guò)代理服務(wù)器的授權(quán)。(HTTP 1.1新)
? “408″ : Request Time-out(請(qǐng)求超時(shí))服務(wù)器等候請(qǐng)求時(shí)超時(shí)。(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)求的資源已被永久刪除,那么,服務(wù)器會(huì)返回此響應(yīng)。該代碼與 404(未找到)代碼類似,但在資源以前有但現(xiàn)在已經(jīng)不復(fù)存在的情況下,有時(shí)會(huì)替代 404 代碼出現(xiàn)。如果資源已被永久刪除,那么,您應(yīng)當(dāng)使用 301 代碼指定該資源的新位置。(HTTP 1.1新)
? “411″ : Length Required(需要有效長(zhǎng)度)不會(huì)接受包含無(wú)效內(nèi)容長(zhǎng)度標(biāo)頭字段的請(qǐng)求。(HTTP 1.1新)
? “412″ : Precondition Failed(未滿足前提條件)服務(wù)器未滿足請(qǐng)求者在請(qǐng)求中設(shè)置的其中一個(gè)前提條件。(HTTP 1.1新)
? “413″ : Request Entity Too Large(請(qǐng)求實(shí)體過(guò)大)請(qǐng)求實(shí)體過(guò)大,已超出服務(wù)器的處理能力。如果服務(wù)器認(rèn)為自己能夠稍后再處理該請(qǐng)求,則應(yīng)該提供一個(gè)Retry-After頭。(HTTP 1.1新)
? “414″ : Request-URI Too Large(請(qǐng)求的 URI 過(guò)長(zhǎng))請(qǐng)求的 URI(通常為網(wǎng)址)過(guò)長(zhǎng),服務(wù)器無(wú)法進(jìn)行處理。
? “415″ : Unsupported Media Type(不支持的媒體類型)請(qǐng)求的格式不受請(qǐng)求頁(yè)面的支持。
? “416″ : Requested range not satisfiable(請(qǐng)求范圍不符合要求)服務(wù)器不能滿足客戶在請(qǐng)求中指定的Range頭。(HTTP 1.1新)
? “417″ : Expectation Failed(未滿足期望值)服務(wù)器未滿足”期望”請(qǐng)求標(biāo)頭字段的要求。
? “500″ : Internal Server Error(服務(wù)器內(nèi)部錯(cuò)誤)服務(wù)器遇到錯(cuò)誤,無(wú)法完成請(qǐng)求。
? “501″ : Not Implemented(尚未實(shí)施) 服務(wù)器不具備完成請(qǐng)求的功能。例如,當(dāng)服務(wù)器無(wú)法識(shí)別請(qǐng)求方法時(shí),服務(wù)器可能會(huì)返回此代碼。
? “502″ : Bad Gateway(錯(cuò)誤網(wǎng)關(guān))服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問(wèn)下一個(gè)服務(wù)器,但該服務(wù)器返回了非法的應(yīng)答。
? “503″ : Service Unavailable(服務(wù)不可用)服務(wù)器由于維護(hù)或者負(fù)載過(guò)重未能應(yīng)答。通常,這只是一種暫時(shí)的狀態(tài)。
? “504″ : Gateway Time-out(網(wǎng)關(guān)超時(shí)) 由作為代理或網(wǎng)關(guān)的服務(wù)器使用,表示不能及時(shí)地從遠(yuǎn)程服務(wù)器獲得應(yīng)答。(HTTP 1.1新)
? “505″ : HTTP Version not supported(HTTP 版本不受支持)不支持請(qǐng)求中所使用的 HTTP 協(xié)議版本。
幾天有位條友問(wèn)了我一個(gè)問(wèn)題,就是他在請(qǐng)求API接口的時(shí)候,返回的JSON格式的數(shù)據(jù),圖片地址都已經(jīng)拿到了,本地開發(fā)環(huán)境頁(yè)面中的調(diào)用也沒有錯(cuò)誤,但是頁(yè)面中就是不顯示圖片,并且圖片返回的結(jié)果全部都是403,就是下面的圖片展示的效果。
圖片返回403
最開始我聽了這位兄弟描述的問(wèn)題之后,我以為是請(qǐng)求的數(shù)據(jù)有問(wèn)題,但是我看了返回的連接也都能正常訪問(wèn),但是又返回個(gè)403是什么鬼呢?
想必大家也都知道403狀態(tài)碼是什么意思,表示資源不可用,服務(wù)器實(shí)際上是已經(jīng)響應(yīng)了用戶的請(qǐng)求,但是給拒絕了。
然后我又想難道是跨域了嗎?不應(yīng)該啊,請(qǐng)求的僅僅是一個(gè)API而已,而且控制臺(tái)也并沒有報(bào)跨域的錯(cuò)誤,況且數(shù)據(jù)已經(jīng)返回了。
最后我突然想到了是不是因?yàn)闆]有設(shè)置 header 頭請(qǐng)求信息的 Referrer 字段呢?然后我在首頁(yè)index.html的head頭里加了一個(gè)meta標(biāo)簽:
<meta name="referrer" content="no-referrer">
加上referrer字段
Referrer這個(gè)字段的具體作用是用戶(瀏覽器)向服務(wù)器發(fā)送資源請(qǐng)求時(shí),用戶所處的位置,用于用戶跟蹤的。主要是有三種場(chǎng)景會(huì)發(fā)送該字段:
上述三種場(chǎng)景,其中第三種是最經(jīng)典的一個(gè)場(chǎng)景,有的站不讓圖片外鏈,只有自己的站點(diǎn)才能顯示,非自家的站點(diǎn)加載圖片時(shí)都會(huì)報(bào)錯(cuò),所以可以設(shè)置在請(qǐng)求資源的時(shí)候不發(fā)送 Referrer 字段。因此需要加上上述的meta標(biāo)簽來(lái)解決這個(gè)問(wèn)題。
這就是我解決請(qǐng)求第三方資源的時(shí)候圖片不加載的方法,各位朋友有遇到過(guò)類似的問(wèn)題嗎,歡迎各位大佬在評(píng)論區(qū)交流。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。