Http 狀態碼 1xx 2xx 3xx 4xx 5xx 還搞不懂?直接擼 HTTP Protocol 吧


HTTP Protocol 1.1 RFC 2616 的 PDF 文檔地址:https://www.w3.org/Protocols/HTTP/1.1/rfc2616.pdf

為什么突然想到要放 HTTP protocol 上來?挺巧的,剛剛逛博客園的時候好像服務器出了點問題,報了 502 bad gateway,想起去年去了某家境外電商面試問到了 http status codes,當時還沒有收藏到 w3org HTTP protocol,所以像我這樣懶得死記硬背的人居然在這塊連記一兩個常用的 http status codes 的來源都沒有(現在網上不負責任的出處實在太多了),因此當時問完這個 http code 面試就直接結束了,記憶猶新......

 

PDF 前面是目錄,拉到目錄就可以看到 1xx ~ 5xx 這五種數字開頭的錯誤碼分類到底是什么。如果你用是 Chrome 瀏覽器,用目錄提示的頁碼快速查閱: ctrl + F 輸入 “page 10” 回車就可以跳到第 10 頁,因為 PDF 文檔每頁都有注腳而且可以被搜到。

 

在學習 http status codes 時,我覺得仍然不應該死記硬背。就如 page 45 頁提到的“503 Service Unavailable”,它可能的原因是“服務過載后的拒絕策略響應”、“服務正在維護”,在下面的 note 注釋中還提到另一種可能“雖然服務器沒有過載,但它的拒絕策略已經啟動,所以后續連接都可能被返回 503 status code message”,這台服務器可能還有其他的資源服務要運行,因此它的拒絕策略在資源利用達到某一個閾值后直接開啟,避免影響其他服務的性能。

 

所以其實要分析所有的 http status code 也算是一個不小的工程,舉個例子,503 狀態碼其中一個原因是“服務器正在維護”,“維護”到底是個什么意思?服務實例下線?這種情況下可不可以返回其它的狀態碼比如 504 Gateway Timeout?而在 504 狀態碼的 note 中也提到某些服務器在 504 狀態發生時會選擇回復 400 或 500 狀態碼,這又是另一種實現的選擇,所以死記硬背在 http status code 上是根本行不通的......除非你還是入行一年以內的初級開發者,這時候背一些API和原理會讓你在面試時聽感更好,面試官會覺得你真的有在學習並掌握了一些東西......

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM