面試官問你HTTP狀態碼,你敢答嗎?

2021-10-04 16:07:32 字數 2480 閱讀 1623

2021.04.19 更新,新增對 304 狀態碼的描述。

http狀態碼的作用是告知客戶端,從伺服器端返回的請求結果。聽說面試會問http狀態碼,相比那些神仙操作,這個記憶性的知識點準備起來比較容易,不應該成為丟分項。

本文參考了網上的資料列舉了常見的http狀態碼,如果接下來面試或者看面經有遇到的這裡沒有的狀態碼話,我還會及時更新。

3xx 重定向

4xx 客戶端錯誤

5xx 伺服器錯誤

參考資料

http 狀態碼由三個十進位制數字組成,第乙個十進位制數字定義了狀態碼的型別,後兩個數字沒有分類的作用。http 狀態碼共分為以下 5 種型別:

類別原因短語

1xxinformation(資訊狀態碼)

接受的請求正在處理

2xxsuccess(成功狀態碼)

請求正常處理完畢

3xxredirection(重定向狀態碼)

需要進行附加操作以完成請求

4xxclient error(客戶端錯誤狀態碼)

伺服器無法處理請求

5xxserver error(服務端錯誤狀態碼)

伺服器處理請求出錯

2xx 的響應結果表明請求被正常處理了。

200表示請求在伺服器端被正常處理了。在響應報文內,隨狀態碼一起返回的資訊會因方法的不同而發生改變。

204表示伺服器接收的請求已經成功處理,但是在返回的響應報文中不含實體的主體部分。另外,也不允許返回任何實體的主體。當瀏覽器在傳送請求後接收到204響應,它的顯示頁面不會發生更新。

通常應用在只需要客戶端往服務端傳送資訊,而服務端不需要傳送新資訊的情況下使用

206表示客戶端進行了範圍請求,而伺服器成功執行了這部分的get請求。響應報文內包含由content-range指定範圍的實體內容。

3xx 響應結果表明瀏覽器需要執行某些特殊的處理以正確處理請求。

永久重定向,301狀態碼表示請求的資源已經分配了新的uri,以後請求該資源應該訪問新的uri。也就是說,如果已經把資源對應的 uri儲存為書籤了,這時應該按 location 首部字段提示的 uri 重新儲存。

臨時重定向,302表示請求的資源已經被分配了新的uri,希望客戶端本次能使用新的uri訪問。和301不同的是,這種資源的uri變更是臨時的額,而不是永久的,因此不用去更新書籤。

該狀態碼和 302 有著異曲同工之妙,表示由於請求對應的資源存在著另乙個 uri,應使用 get方法定向獲取請求的資源。

如果瀏覽器原本是用post方法去請求伺服器,收到303狀態碼之後,會改用get並訪問資源新的uri。

304 狀態碼表示客戶端傳送附帶條件的請求時,伺服器端允許請求訪問資源,但未滿足條件的情況。例如,客戶端請求的資源在客戶端本地已有快取,會在請求頭部中加入「if-modified-since", "if-none-match"等字段,服務端根據這些字段資訊判斷這些資源資訊是否經過修改,如果沒有則返回 304 狀態碼,客戶端可以直接使用快取中的資源。

304 狀態碼返回時,不包含任何響應的主體部分。304 雖然被劃分在 3xx 類別中,但是和重定向沒有關係。

ps:附帶條件的請求是指採用get方法的請求報文中包含if-match,if-modified-since,if-none-match,if-range,if-unmodified-since中任一首部。

臨時重定向,和 302 found 狀態碼有相同的含義。區別在於 307 不會強制瀏覽器將 post 方法改為 get 方法,而是遵循瀏覽器自身的標準。

4xx 的響應結果表明客戶端是發生錯誤的原因所在。

400 狀態碼表示請求報文中存在語法錯誤。當錯誤發生時,需修改請求的內容後再次傳送請求。另外,瀏覽器會像 200 ok 一樣對待該狀態碼。

401 狀態碼表示傳送的請求需要有通過 http 認證(basic 認證、digest 認證)的認證資訊。第一次收到 401 狀態碼表示需要進行使用者認證,第二次再收到 401 狀態碼說明使用者認證失敗。

403 狀態碼表明對請求資源的訪問被伺服器拒絕了,當未獲得檔案系統的訪問授權,訪問許可權出現某些問題(從未授權的傳送源 ip 位址試圖訪問)等列舉的情況都可能發生 403 。

404 是我們最常見的狀態碼之一,它表示伺服器上無法找到請求資源。此外,也可能是伺服器端在拒絕請求且不想說明原因的時候使用。

5xx 的響應結果表明伺服器本身發生錯誤。

500 狀態碼表明伺服器端在執行請求時發生了錯誤。也有可能是 web應用存在的 bug 或某些臨時的故障。

503 狀態碼表明伺服器暫時處於超負載或正在進行停機維護,現在無法處理請求。

http狀態碼| 菜鳥教程

那朵無名的花,真的會開嗎?

今天面試官問到http狀態碼,又忘了。。

所以只能記一下了 首先是1開頭的 現在來說1xx都是從 http 1.1 開始加入的。這個狀態碼可以用於乙個協議,100 continue 有時候post中的資料會很大,有時候服務端需要這些資料,有時候不需要,這時候可以使用 100 continue 去驗證一下,成功會返回100,表示繼續將post...

面試官問你php協程,你要這樣告訴他

多工 並行和併發 在講協程之前,先談談多程序 多執行緒 並行和併發。對於單核處理器,多程序實現多工的原理是讓作業系統給乙個任務每次分配一定的 cpu 時間片,然後中斷 讓下乙個任務執行一定的時間片接著再中斷並繼續執行下乙個,如此反覆。由於切換執行任務的速度非常快,給外部使用者的感受就是多個任務的執行...

當面試官問你為什麼換工作的時候,你會怎麼回答?

其實換工作原因無非就幾點 薪資沒有達到期望值 與領導或同事相處不愉快 覺得自己是在浪費生命,沒有實現自己的人生價值。本來個人覺得這問題沒什麼可問的,可為什麼我以前面試的時候,老是碰到有人問這個問題?面試官們,你們到底想從這個問題中了解什麼呢?我如果告訴你我是因為 原因離職,那你是否覺得我太勢利,這種...