作者:Gakki
當(dāng)瀏覽器訪問一個網(wǎng)站的時候,瀏覽器會向網(wǎng)頁所在的服務(wù)器發(fā)出請求脊奋,然后服務(wù)器會返回一個包含 HTTP 狀態(tài)碼的信息頭( server header )用以響應(yīng)瀏覽器的請求
1. HTTP 狀態(tài)碼
- 最常見的 HTTP 狀態(tài)碼:
- 200:請求成功
- 301:資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其他 URL
- 404:請求的資源(網(wǎng)頁等)不存在
- 500:內(nèi)部服務(wù)器錯誤
1.1 HTTP 狀態(tài)碼分類
- HTTP 狀態(tài)碼分類共分為 5 類:
分類 | 描述 |
---|---|
1** | 信息,服務(wù)器收到請求疙描,需要請求者繼續(xù)執(zhí)行操作 |
2** | 成功诚隙,操作被成功接收并處理 |
3** | 重定向,需要進(jìn)一步的操作已完成請求 |
4** | 客戶端錯誤起胰,請求包含語法錯誤或無法完成請求 |
5** | 服務(wù)器錯誤久又,服務(wù)器在處理請求的過程中發(fā)生了錯誤 |
1.2 HTTP 狀態(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)碼時孕似,不會返回任何資源」涡蹋客戶端通常會緩存訪問過的資源喉祭,通過提供一個頭信息指出客戶端希望只返回在指定日期之后修改的資源 |
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è)計(jì)人員可設(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è)計(jì)人員可通過301代碼指定資源的新位置 |
411 | Length Required | 服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息 |
412 | Precondition Failed | 客戶端請求信息的先決條件錯誤 |
413 | Request Entity Too Large | 由于請求的實(shí)體過大,服務(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 | 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時允坚,從遠(yuǎn)程服務(wù)器接收到了一個無效的響應(yīng) |
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é)議的版本,無法完成處理 |
雜談
401和403的區(qū)別?
- 401 Unauthorized:該HTTP狀態(tài)碼表示認(rèn)證錯誤鲜结,表示這個請求沒有被服務(wù)器認(rèn)證或者客戶端傳送的證書錯誤展运,可以修改后在進(jìn)行重試
- 403 Forbidden :該HTTP狀態(tài)碼關(guān)于授權(quán)的,跟應(yīng)用的的邏輯有關(guān)精刷,表示客戶端沒有權(quán)限去訪問要求資源
- 總的來說:
- 401用來表示缺失或錯誤的認(rèn)證拗胜,如:token 失效,或者 token 缺失贬养,甚至 token 偽造挤土。導(dǎo)致服務(wù)端無法識別你的身份,這時會返回 HTTP Status Code 401误算。客戶端此時只能重試迷殿。
- 403表示用戶認(rèn)證后儿礼,但權(quán)限不足,無法對該資源進(jìn)行操作庆寺。如:你登錄成功了蚊夫,但是你卻非要去訪問其他人的隱私內(nèi)容,或者你無權(quán)訪問的內(nèi)容懦尝。
出現(xiàn)403會怎么解決?
- 重建dns緩存
- 對于一些常規(guī)的403 forbidden錯誤知纷,建議大家首先要嘗試的就是重建dns緩存,在運(yùn)行中輸入cmd陵霉,然后輸入ipconfig /flushdns即可琅轧。如果不行的話,就需要在hosts文件里把主頁解析一下了踊挠。同時乍桂,查看是否在網(wǎng)站虛擬目錄中添加默認(rèn)文檔,一般默認(rèn)文檔為:index.html效床;index.asp睹酌;index.php;index.jsp剩檀;default.htm憋沿;default.asp等。
- 修改文件夾安全屬性
- 用以下命令修改文件夾安全屬性:chcon -R -t httpd_user_content_t public_html/
- 關(guān)于apache導(dǎo)致的403 forbidden錯誤的解決辦法
- 打開apache的配置文件httpd.conf沪猴,將“Deny from all”改成“allow from all”辐啄。
- 之所以會出現(xiàn)錯誤采章,是因?yàn)榇蠖鄶?shù)的國外主機(jī)在配置Apache的時候啟用了mod_security,也就是開啟了安全檢查则披,如果提交的信息中包含select , % , bin等關(guān)鍵字共缕,Apache就會禁止,并給出403士复,404图谷,500等錯誤。
503是什么?
- 服務(wù)不可用 (Service unavailable)阱洪。因暫時超載或臨時維護(hù)便贵,您的 Web 服務(wù)器目前無法處理 HTTP 請求。 其含義是冗荸, 這是一個暫時情況承璃,會有一些延誤, 過后將會得到緩解蚌本。 有些服務(wù)器在這種情況下也許干脆拒絕套接字(socket)連接盔粹,在這種情況下,可能會由于套接字建立超時而產(chǎn)生不同的錯誤信息程癌。