在研究最近的REST API時,我有一個問題,爲什麼「IANA」決定只有100而不是從1開始的HTTP狀態代碼。我希望會有一個原因,但我會我很想知道這件事。爲什麼HTTP錯誤代碼從100開始
1
A
回答
2
HTTP/1.0向HTTP/0.9(最初發布的版本)添加了狀態碼。狀態代碼範圍被定義爲這樣:
RFC 1954, 6.1.1 Status Code and Reason Phrase
狀態碼元素是 嘗試以瞭解和滿足所述請求的3位整數結果代碼[...]。 狀態代碼旨在供自動機[...]使用。
狀態碼的第一個數字定義響應的類別。最後兩位數字沒有任何分類角色。有第一個數字的5個值:
的1xx:信息 - 未使用,但留作將來使用
的2xx:成功 - 被成功接收的動作,理解和接受。
的3xx:重定向 - 而且必須採取行動,以完成請求
的4xx:客戶端出錯 - 請求有語法錯誤或無法實現
的5xx:服務器錯誤 - 服務器無法完成顯然有效的請求
至於「爲什麼」:它允許五類,每一個都可以包含一百個不同的代碼(x00 - x99),「對任何人都應該是足夠的」。
+0
感謝@CodeCaster是上面的細節是有道理的。因此,我們在每個類別中確實有100個不同的代碼,目前有五個類別來描述狀態。儘管目前看起來100個狀態已經足夠,但希望我們不會耗盡任何類別的狀態代碼。 :d –
2
狀態代碼不會以連續的方式編號。第一個數字表示狀態碼的類型,例如, 2xx表示成功,4xx表示客戶端錯誤。最後的數字用於更多地指定狀態碼。需要兩位數字,因爲每種類型存在多於9個狀態碼。
相關問題
- 1. 打開圖形錯誤代碼100
- 2. HTTP錯誤代碼的錯誤域的名稱是什麼?
- 3. 錯誤代碼100,而寫爲Facebook API
- 4. API錯誤代碼:100
- 5. Api錯誤代碼100
- 6. 爲什麼這個代碼有錯誤?
- 7. 爲什麼此代碼有錯誤:NullPointerException?
- 8. 爲什麼此代碼發生錯誤?
- 9. 爲什麼沒有sqlite錯誤代碼
- 10. 爲什麼這個代碼有錯誤
- 11. JSP代碼錯誤 - 不能爲什麼
- 12. 爲什麼此代碼輸出錯誤?
- 13. 爲什麼我的代碼錯誤?
- 14. 爲什麼從Spark 1.0.1開始出現KMeansModel.predict錯誤?
- 15. 錯誤代碼2開始OracleDbConsole服務
- 16. 錯誤代碼1064開始嘗試
- 17. rowindex始終從零開始......爲什麼?
- 18. 什麼是錯在我的代碼?爲什麼錯誤味精
- 19. Playframework 2.6.x:爲什麼Akka HTTP從現在開始默認?
- 20. 爲什麼PHP代碼中的PHPDoc錯誤通過此代碼?
- 21. 開始目標C代碼錯誤?怎麼了?
- 22. Mockjax HTTP錯誤代碼
- 23. HTTP錯誤代碼:400
- 24. HTTP代碼= 409錯誤
- 25. .net WebClient http錯誤代碼
- 26. HTTP錯誤代碼505
- 27. HTTP錯誤代碼500
- 28. WKWebView抓HTTP錯誤代碼
- 29. 爲什麼我從這段代碼中得到一個錯誤?
- 30. 爲什麼我從服務器獲取505錯誤代碼?
我懷疑你可以從社區獲得這樣的問題的權威答案;更好的辦法是直接詢問標準作者。我們所能做的就是猜測使用第一次找到的咖啡渣。但就我個人而言,它與制定人性化協議的主要方法相關。對於HTTP,這包括具有自由格式的鬆散語法(除了一些簡單的規則),任意空格,區分大小寫的匹配等等。有了這個主要原理,要求寫入001而不是1是不正確的。OTOH可變長度值看起來更糟糕。但味道是不同的和不可預測的。 – Netch
IANA僅維護註冊表。範圍由IETF規範定義。 –
@Netch下面的狀態碼分類對於有三位數的狀態碼是有意義的。 –