HTTP協議(三):狀態碼

Roobtyan發表於2018-05-12

前言

作者說:在上一節的內容中,HTTP大佬介紹了他是怎麼讓伺服器和使用者達成資訊互動的,詳細的說明了連線建立過程中用到的一些基本的技術原理,包括請求報文響應報文、建立持久化連線用的Cookie技術等內容。這一節的內容非常有意思,就是那種叫做HTTP狀態碼的東西。沒錯,就是上一節中的HTTP報文中的一部分的狀態碼:200 OK。

狀態碼的作用

你應該已經知道了,其實我的最根本的作用就是連線伺服器老大和使用者(人類)。你肯定也知道,世界上並不是所有的東西都能向著自己想象的方向發展。比如說,你喜歡上一個姑娘,最大的心願自然是和她在一起,但是,人家並不喜歡你,這樣,你的心願就沒法達成(扎心了)。這裡面讓你最終知道你的心願沒法達成的標誌是什麼?沒錯,就是人家姑娘給你的反饋:人家並不喜歡你。這也算是一種標誌,標誌著你們能否在一起,標誌著你的心願是否能夠達成。
而我的心願,自然就是能夠幫助使用者和伺服器老大建立連線,但是,人家伺服器老大可忙了,又加上他的身體不太好,經常停機維修,或者是使用者自己的問題,並不能完成這個連線過程,這時候,使用者就需要得到一種反饋——我和伺服器是否建立了連線?如果沒有,那麼究竟是哪一方出現的問題?
以上的這種需求,就是狀態碼需要做的事情。
HTTP 狀態碼負責表示客戶端 HTTP 請求的返回結果、標記伺服器端的處理是否正常、通知出現的錯誤等工作。

狀態碼的組成

狀態碼如200 OK,由3位數字和原因短語組成。數字的第一位是響應類別,後兩位就是個標誌,表示是這個類別中的什麼狀態。

  • 狀態碼的分類
    這裡寫圖片描述

狀態碼示例

  • 2xx 請求正常處理完成
狀態碼名稱 描述
200 OK 表示請求別正確處理了,大多數的請求都是這個情況
204 No Content 請求成功,但是返回的響應報文實體沒有內容
206 Partial 是對某一部分的內容進行的請求
  • 3XX 需要進行附加操作以便於完成請求
狀態碼名稱 描述
301 Moved Permanently 永久性重定向,表示請求的資源已經被分配了新的URI,講重定向到新的地址
302 Found 臨時性重定向,表示資源已經被分配了新的URI,希望使用者在本次訪問的情況下能夠使用新的URI訪問
303 See Other 303與302的功能是相同的,唯一不同的是請求的方式,303要求使用者以get方式訪問該資源
  • 4XX 客戶端錯誤
狀態碼名稱 描述
400 Bad Request 請求報文語法出現錯誤
401 Unauthorized 表示傳送的請求需要通過請求驗證才能繼續
403 Forbidden 表明對請求資源的訪問被伺服器拒絕了
404 Not Found 這個和20OK一樣常見,不同的是,這個代表訪問的資源不存在,所以404,你懂的
  • 5XX 伺服器錯誤
    從我個人的經驗來看,這個問題一般會出現在開發者除錯程式的過程中emmmm,bug比較多。。。
狀態碼名稱 描述
500 Internal Server Error web應用出現bug
503 Service Unavailable 表明伺服器暫時處於超負載或正在進行停機維護

好了,相信到這裡,你應該對狀態碼有了很深刻的理解了吧,如果你有什麼疑問,歡迎qq、微信、郵箱交流,也可以在下面留言。
未完待續……

結語

感謝您的閱讀,歡迎指正部落格中存在的問題,也可以跟我聯絡,一起進步,一起交流!

微信公眾號:進擊的程式狗
郵箱:roobtyan@outlook.com
個人部落格:http://roobtyan.cn
如果喜歡我的文章,那麼就掃描下面的二維碼關注我吧
這裡寫圖片描述

相關文章