科普:404/401/408...這些HTTP網頁狀態碼代表啥含義? - IT之家

2021-01-09 IT之家

本文授權轉載超能網,若要轉載請經超能網同意。

在這個廣域網中,我們所有人都一定會看到3個Logo:測試你網速的藍色熊掌,令你絕望的加載圓圈,還有「褲子都脫了就給我看這個?」的404頁面。前兩個好歹還能讓你看點東西,而最後一個則是最糟糕的用戶體驗——除了告訴你打不開網頁就似乎真的什麼也沒有了,不知道各位有沒有想過這個404是怎麼產生的,除了404還有什麼?今天我們就來談一談那些狀態碼。

404和HTTP狀態碼

上面所說的404其實是一種標準的HTTP返回代碼,官方名稱是HTTP狀態碼(HTTPStatusCode),用於表示網頁伺服器HTTP的響應狀態。但似乎一般人都不會仔細研究這些HTTP狀態碼和這些狀態碼對開發人員的影響。也許,一個開發人員就算不知道這些狀態碼也能開發出一個網站,但如果企業要開發一個大型網站,在某些時候需要微調或系統整合需要到更底層的網絡工作時,就有可能遇到瓶頸,特別是在出錯時更加明顯。對於狀態碼的分類有三個層級,就好像404那樣用3三個數字表示,分為大類,中類和小類。值得一提的是,在IIS(Internet信息服務)中還有不少微軟制定的擴充狀態碼,格式類似404.1這樣,能更深層次的讓開發者清楚出錯原因。

在進行請求的時候,我們看到的都只是伺服器最後返回來的狀態碼,比如出錯的404和成功的200,但是實際上在請求的過程中,會有很多的狀態碼在快速變化,除非是類似打斷點的操作,一步操作停一下,否則是不能看出這些狀態碼是怎麼變化的,這就導致在伺服器響應過程中有很多狀態碼我們都看不到。

審查元素可以看到各個請求最終的狀態碼

首先,我們要知道幾乎所有的HTTP狀態碼都被分成了五大類:

1開頭的表示伺服器收到請求並需要請求這繼續處理;

2開頭的成功響應,表示成功處理了請求;

3開頭的重定向,引導瀏覽器跳轉到另一個資源頁面;

4開頭表示請求出錯,妨礙了伺服器的處理,伺服器會返回一個狀態碼解釋到底是什麼錯誤;

5開頭的表示伺服器錯誤,並不是請求者的原因;

就拿404舉個例子,作為最出名的狀態碼,我們想來詳細解釋下404這三個數字的含義:第一個4表示客戶端出錯,第二個0表示請求者把網址打錯了,最後的4表示4開頭的錯誤狀態碼中排第四。

那麼404是怎麼產生的呢?當用戶在地址欄輸入一個網址後,這時候IIS首先會檢測用戶輸入的地址是否有對應的網頁信息,如果沒有,IIS就會通過伺服器想用戶返回404錯誤狀態碼提示,告訴用戶找不到地址對應的網頁信息,但伺服器並不清楚這種情況是暫時性的還是永久性的。出現404最多的原因就是用戶輸入了錯誤的連結,或者無法響應並找不到原因,也有可能就是網頁被刪除了。

為什麼要設計404頁面

以4xx開頭的錯誤都是跟「客戶端」有關,比如用戶可能訪問了不存在的頁面,用戶權限不足或者未提供有效的驗證信息(輸入錯誤的帳號密碼等)。儘管404頁面被用戶瀏覽到的概率相對於全站的其他頁面來說要小得多,但頁面難免會出錯,無論是用戶的誤操作還是伺服器的原因,作為網站開發者也無法控制錯誤頁面的出現,但開發者可以通過設計一個特別的404錯誤頁面將用戶失望度降到最低,開發者需要在這個頁面很好的把信息傳達給用戶,並引導用戶進行下一步的操作。

訪問到錯誤頁面是不愉快的用戶體驗,作為開發者可以提供一些應對方法

還有什麼比較出名的狀態碼?

其實除了404NotFound外,還有很多HTTP狀態碼,這些狀態碼都有自己的含義,所以我們說說一些比較常見的狀態碼以及它們的表達信息。

400錯誤請求:400代表語義有誤,伺服器無法理解用戶的請求,除非進行修改,不然沒必要一邊按F5一邊噴伺服器垃圾。比如說別把www.baidu.com.打成com.baidu.www.,否則伺服器是不知道你在說什麼鳥語。在減少這類錯誤的道路上,偉大的人類發明了搜尋引擎,容錯率隨之提高。

401未授權:一般來說該錯誤消息表明你首先需要登錄(輸入有效的用戶名和密碼)。如果你不輸入這些信息,就會有401錯誤,這意味著驗證信息出錯,伺服器無法識別你的身份。

403禁止:有句話叫「拉不出屎千萬別怪地球沒引力」,因為出現403是因為伺服器拒絕了你的地址請求,或者你根本沒權限訪問網站,提供身份驗證也沒用,也就是說,用戶被禁止訪問了。然而除非與Web伺服器管理員聯繫,否則一旦遇到403狀態碼都無法自行解決。

408請求超時:遇到408意味著你的請求發送到該網站花的時間比該網站的伺服器準備等待的時間要長,即連結超時。408錯誤往往難以解決,通常涉及系統工作量或系統操作中的一次性變化。如果用戶持續看到408錯誤,管理員首先要考慮到Web伺服器的工作量,特別是在產生408錯誤的時間段,另外網絡流量激增也可能導致用戶無法訪問網頁從而出現該錯誤。

梯子不夠長,牆外的世界不是你想看就能看的

410永久刪除:如果用戶訪問的網頁被永久刪除,伺服器就會返回410代碼。410實際上和404有點相似,在伺服器不確定這個情況是不是永久的情況下,應該使用404狀態碼。410響應的目的主要是幫助網站管理員維護網站,通知用戶這個網頁資源已經不能再使用,並且伺服器擁有者希望所有指向這個資源的遠端連結也被刪除。不過之後的事,就涉及到301和302返回碼了。

301永久移動,302臨時移動:在優化網站的時候,301重定向是網站管理員必用的,在網頁被移動後多數情況下瀏覽器會自動定向到新的URI(統一資源標識符),並且以後任何新的請求都應使用新的URI來代替。而302隻是URI被理解為臨時交換而已,客戶端還是會繼續使用原來的地址發送請求。這兩種現象出現在網頁的域名更換後,搜尋引擎還使用原有域名地址訪問URI,如果搜尋引擎得到301返回碼,那麼搜尋引擎就知道管理員更換了域名,下次就會自動用新域名來索引網站。

305使用代理:訪問者只能使用代理來訪問網頁,如果伺服器放回這個狀態碼,意思是你需要一張梯子。想要登陸諸如Google,Youtube,Facebook這些不存在的網站,除了使用VPN別無辦法。

509超過帶寬限制:相比其他500狀態碼,509算是一個特殊的存在。之所以特殊,是因為這個錯誤要用錢來解決。509並不是官方的狀態碼,但是仍然被廣泛使用。正如名字所示,網站流量增大,帶寬不夠用就會出現這類錯誤,網站管理員只能掏錢向主機商買流量。

除了上述所說的一部分HTTP狀態碼外,還有很多其他的狀態碼,比如100,200等,這些狀態碼都有自己的信息定義和作用,限於篇幅原因只能列舉一些很常見的狀態碼。HTTP狀態碼通常都與用戶的瀏覽體驗息息相關,它能告訴客戶端當前發生了什麼事,或者說當前Web伺服器的響應狀態。作為開發者有必要了解這些狀態碼,能夠明白問題出在哪,從而針對性地解決問題。

想看到更多這類內容?去APP商店搜,天天都有小歡喜。IT之家

相關焦點

  • 出現網頁錯誤時, 404、502這些數字代表啥_新聞動態_教育頻道_雲南網
    原標題:出現網頁錯誤時, 404、502這些數字代表啥「機」本法則平時,我們在瀏覽網頁時偶爾會遇到寫有502的報錯頁面,更多時候會出現404錯誤頁面,那麼它們到底是什麼意思呢?登錄網頁時這些步驟在後臺運行當我們在IE、搜狗、火狐等瀏覽器中訪問一個網址(域名)的時候,首先要找到域名所對應伺服器的IP位址,簡單說就是先要找到所需的伺服器在哪裡。得到伺服器的IP位址後,我們電腦上的瀏覽器要向伺服器發出想加載網頁資源的請求,建立一個瀏覽器與伺服器的連接。
  • 出現網頁錯誤時,404、502這些數字代表什麼?
    平時,我們在瀏覽網頁時偶爾會遇到寫有502的報錯頁面,更多時候會出現404錯誤頁面,那麼它們到底是什麼意思呢?登錄網頁時這些步驟在後臺運行當我們在IE、搜狗、火狐等瀏覽器中訪問一個網址(域名)的時候,首先要找到域名所對應伺服器的IP位址,簡單說就是先要找到所需的伺服器在哪裡。
  • 網站出現 404 錯誤時應如何處理?-站長之家
    2、當Web 伺服器接到類似請求時,會返回一個404 狀態碼,告訴瀏覽器要請求的資源並不存在。  (1)無法在所請求的埠上訪問Web站點。  (2)Web服務擴展鎖定策略阻止本請求。  (3)MIME映射策略阻止本請求。
  • 出現網頁錯誤時,數字502、404等分別是什麼意思? - 北京科學中心
    所以,在網頁響應中還要加入相應的狀態碼來告訴瀏覽器當前請求的處理狀態,這就是我們在連結網頁出錯時所看到的404、502等狀態碼了。那麼,404和502到底是什麼意思呢?它們分別代表什麼樣的頁面錯誤呢?頁面錯誤狀態碼>>>>404狀態碼404和502都是一種表示頁面出現錯誤的代碼,也叫做頁面狀態碼。
  • 超詳:介紹HTTP協議(真的很經典)
    無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。  推薦使用Fiddler來學習http協議和分析每次http請求/響應的格式。
  • 404 的傳說:你訪問的頁面找不到了!
    如果你要訪問網頁,必須向這個房間提交申請,如果找不到這個網頁就會提示你「404 not found 」。當人們讓 Berners-Lee 就 「 404 錯誤」發表意見時, Berners-Lee 以這是無關緊要的瑣事為由拒絕置評,讓這段傳說更加撲朔迷離。
  • 特斯拉T型車標啥含義?馬斯克是這樣說的
    特斯拉CEO馬斯克(圖片來自cnBeta)    特斯拉T型車標不僅是發明家特斯拉(Tesla)名字的首字母縮寫。馬斯克在其推特上解釋,這個風格化的「T」實際上也是對公司產品的暗示,稱T型標識代表著電動馬達的橫截面。    在標識設計方面,特斯拉還與SpaceX有相似之處。SpaceX是馬斯克的另一項大膽冒險,致力於打造火箭並將有效載荷發送至太空軌道。    馬斯克在推文中稱SpaceX標誌中變形的「X」代表著火箭發射軌跡。
  • 颱風「鸚鵡」來了,這些颱風預警信號都代表什麼含義?
    原標題:應急科普丨2號颱風「鸚鵡」來了,不同的颱風預警信號都代表什麼含義?颱風是一種極具破壞力的災害性天氣,今年第2號颱風「鸚鵡」(熱帶風暴級)已於今天(14日)8時50分登陸廣東陽江海陵島沿海,成為今年首個登陸我國的颱風。那麼,你知道颱風預警信號分為幾級嗎?不同級別的颱風預警信號分別代表什麼不同的含義呢?
  • HTTP代理ip協議都有什麼特點和原理
    >MIMEmultipart/form-data內容協商:伺服器驅動協商客戶端驅動協商透明協商1.3 HTTP狀態碼1XX:接收的請求正在處理2XX:請求正常處理完畢3XX:需要進行附加操作以完成請求301 Moved Permanenetly,302 Found,303 See Other,304 Not Modified,307 Temporary Redirect4XX:伺服器無法處理請求400 Bad Request,401
  • 孫悟空七十二變是變啥?揭秘七十二變真正含義
    孫悟空七十二變是變啥?揭秘七十二變真正含義時間:2015-06-27 14:24   來源:華東在線   責任編輯:毛青青 川北在線核心提示:原題:孫悟空的七十二變究竟是指什麼?來源:網易-趣歷史 導讀:【孫悟空七十二變是變啥?
  • 北京健康寶三個顏色代表什麼含義?
    北京健康寶小程序生成的「三色碼」有什麼含義?  持黃碼及紅碼的人員需待轉換成綠碼才能正常出行。  查詢結果包含「集中觀察」「居家觀察」和「未見異常」三種狀態,分別用紅色、黃色及綠色標識。  繼續回復【懷柔通】可查看懷柔通APP(懷柔健康碼)下載入口、懷柔通app如何註冊操作指南及企業員工到崗時如何利用懷柔健康碼復工。
  • 星際科普:「gl hf」代表什麼?遊戲中英文的含義
    那麼這個世界通用的英文縮寫究竟代表了什麼意思呢?今天就讓我們來詳細解答一番。→ well play → 打的不錯ppp或pp → (please) press pause → 請求暫停關於「gg gl」問候語的禮節看到這些縮寫的名稱,你就應該了解了,玩家和選手在開局打出的這些縮寫通常都代表著友好的問候,所謂友誼第一,比賽第二,正如體育比賽中雙方開賽前要握手或鞠躬致敬一樣,出於競技前的一種例行友好。
  • 科普| 這些颱風「之最」,你都了解嗎?
    科普 | 這些颱風「之最」,你都了解嗎?「冷知識」你還知道哪些颱風之最歡迎留言給我們!來源:中國氣象原標題:《科普 | 這些颱風「之最」,你都了解嗎?》
  • 疫情面試了13家企業軟體測試崗位,面試題整理
    冒煙測試(網頁架構圖)6. 頁面初始化測試(查看資料庫中的數據內容和頁面展示的內容是否一致,並且是否按照某些順序排列)7 .具體執行測試用例(幾乎所有的功能測試、流程法、場景法)8. 發現缺陷就要再填寫缺陷表9. 非功能性測試(sql、js注入、頁面效率、繞過js驗證直接添加數據到資料庫)10.
  • 宅家度假不無聊,線上科普來陪伴——萬花尺,帶你感受數學之美
    宅家度假不無聊,線上科普來陪伴——萬花尺,帶你感受數學之美 2020-03-13 11:44 來源:澎湃新聞·澎湃號·政務