程式設計師常見bug之http狀態碼

2022-07-29 19:30:10 字數 3535 閱讀 9527

今天小關來科普一下http協議的狀態碼以及常見錯誤**

1xx(臨時響應)

表示臨時響應並需要請求者繼續執行操作的狀態碼。

100(繼續)

請求者應當繼續提出請求。伺服器返回此**表示已收到請求的第一部分,正在等待其餘部分。

101(切換協議)

請求者已要求伺服器切換協議,伺服器已確認並準備切換。

2xx(成功)

表示成功處理了請求的狀態碼。

200(成功)

伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁。如果是對您的 robots.txt 檔案顯示此狀態碼,則表示 googlebot 已成功檢索到該檔案。

201(已建立)

請求成功並且伺服器建立了新的資源。

202(已接受)

伺服器已接受請求,但尚未處理。

203(非授權資訊)

伺服器已成功處理了請求,但返回的資訊可能來自另一**。

204(無內容)

伺服器成功處理了請求,但沒有返回任何內容。

205(重置內容)

伺服器成功處理了請求,但沒有返回任何內容。與 204 響應不同,此響應要求請求者重置文件檢視(例如,清除表單內容以輸入新內容)。

206(部分內容)

伺服器成功處理了部分 get 請求。

3xx(重定向)

要完成請求,需要進一步操作。通常,這些狀態碼用來重定向。google 建議您在每次請求中使用重定向不要超過 5 次。您可以使用**管理員工具檢視一下 googlebot 在抓取重定向網頁時是否遇到問題。診斷下的網路抓取頁列出了由於重定向錯誤導致 googlebot 無法抓取的**。

300(多種選擇)

針對請求,伺服器可執行多種操作。伺服器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。

301(永久移動)

請求的網頁已永久移動到新位置。伺服器返回此響應(對 get 或 head 請求的響應)時,會自動將請求者轉到新位置。您應使用此**告訴 googlebot 某個網頁或**已永久移動到新位置。

302(臨時移動)

伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來響應以後的請求。此**與響應 get 和 head 請求的 301 **類似,會自動將請求者轉到不同的位置,但您不應使用此**來告訴 googlebot 某個網頁或**已經移動,因為 googlebot 會繼續抓取原有位置並編制索引。

303(檢視其他位置)

請求者應當對不同的位置使用單獨的 get 請求來檢索響應時,伺服器返回此**。對於除 head 之外的所有請求,伺服器會自動轉到其他位置。

304(未修改)

自從上次請求後,請求的網頁未修改過。伺服器返回此響應時,不會返回網頁內容。

如果網頁自請求者上次請求後再也沒有更改過,您應將伺服器配置為返回此響應(稱為 if-modified-since http 標頭)。伺服器可以告訴 googlebot 自從上次抓取後網頁沒有變更,進而節省頻寬和開銷。

.305(使用**)

請求者只能使用**訪問請求的網頁。如果伺服器返回此響應,還表示請求者應使用**。

307(臨時重定向)

伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來響應以後的請求。此**與響應 get 和 head 請求的 301 **類似,會自動將請求者轉到不同的位置,但您不應使用此**來告訴 googlebot 某個頁面或**已經移動,因為 googlebot 會繼續抓取原有位置並編制索引。

4xx(請求錯誤)

這些狀態碼表示請求可能出錯,妨礙了伺服器的處理。

400(錯誤請求)

伺服器不理解請求的語法。

401(未授權)

請求要求身份驗證。對於登入後請求的網頁,伺服器可能返回此響應。

403(禁止)

伺服器拒絕請求。如果您在 googlebot 嘗試抓取您**上的有效網頁時看到此狀態碼(您可以在 google **管理員工具診斷下的網路抓取頁面上看到此資訊),可能是您的伺服器或主機拒絕了 googlebot 訪問。

404(未找到)

伺服器找不到請求的網頁。例如,對於伺服器上不存在的網頁經常會返回此**。

如果您的**上沒有 robots.txt 檔案,而您在 google **管理員工具「診斷」標籤的 robots.txt 頁上看到此狀態碼,則這是正確的狀態碼。但是,如果您有 robots.txt 檔案而又看到此狀態碼,則說明您的 robots.txt 檔案可能命名錯誤或位於錯誤的位置(該檔案應當位於頂級域,名為 robots.txt)。

如果對於 googlebot 抓取的**看到此狀態碼(在」診斷」標籤的 http 錯誤頁面上),則表示 googlebot 跟隨的可能是另乙個頁面的無效鏈結(是舊鏈結或輸入有誤的鏈結)。

405(方法禁用)

禁用請求中指定的方法。

406(不接受)

無法使用請求的內容特性響應請求的網頁。

407(需要**授權)

此狀態碼與 401(未授權)類似,但指定請求者應當授權使用**。如果伺服器返回此響應,還表示請求者應當使用**。

408(請求超時)

伺服器等候請求時發生超時。

409(衝突)

伺服器在完成請求時發生衝突。伺服器必須在響應中包含有關衝突的資訊。伺服器在響應與前乙個請求相衝突的 put 請求時可能會返回此**,以及兩個請求的差異列表。

410(已刪除)

如果請求的資源已永久刪除,伺服器就會返回此響應。該**與 404(未找到)**類似,但在資源以前存在而現在不存在的情況下,有時會用來替代 404 **。如果資源已永久移動,您應使用 301 指定資源的新位置。

411(需要有效長度)

伺服器不接受不含有效內容長度標頭字段的請求。

412(未滿足前提條件)

伺服器未滿足請求者在請求中設定的其中乙個前提條件。

413(請求實體過大)

伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力。

414(請求的 uri 過長)

請求的 uri(通常為**)過長,伺服器無法處理。

415(不支援的**型別)

請求的格式不受請求頁面的支援。

416(請求範圍不符合要求)

如果頁面無法提供請求的範圍,則伺服器會返回此狀態碼。

417(未滿足期望值)

伺服器未滿足」期望」請求標頭字段的要求。

5xx(伺服器錯誤)

這些狀態碼表示伺服器在處理請求時發生內部錯誤。這些錯誤可能是伺服器本身的錯誤,而不是請求出錯。

500(伺服器內部錯誤)

伺服器遇到錯誤,無法完成請求。

501(尚未實施)

伺服器不具備完成請求的功能。例如,伺服器無法識別請求方法時可能會返回此**。

502(錯誤閘道器)

伺服器作為閘道器或**,從上游伺服器收到無效響應。

503(服務不可用)

伺服器目前無法使用(由於超載或停機維護)。通常,這只是暫時狀態。

504(閘道器超時)

伺服器作為閘道器或**,但是沒有及時從上游伺服器收到請求。

505(http 版本不受支援)

伺服器不支援請求中所用的 http 協議版本。

我是小關我真是太有文化了,關注小關,帶你脫坑!

程式設計師如何減少BUG

最近乙個專案出了大量的bug,很是慚愧,有沒有可以盡量規避bug的良方呢?可能沒有,但總有儘量減少bug出現機率的方 吧 我個人覺得在企業應用開發中,bug大致可以分為如下三類 一 程式本身語義上的bug。執行時bug。比如np之類的。二 需求理解方面的差異導致的bug。簡單說,就是程式本身語義沒有...

程式設計師遇到Bug後的30種常見反應

開發應用程式是件壓力很大的事情,尤其是當編寫完 後,突然冒出個bug,這真是讓人百感交集 痛不欲生。那麼,如何平心靜氣地解決每乙個bug,是每個程式設計師都要修煉的地方。下面本文將分享程式設計師遇到bug時,最常說的30句話,不知道你中槍了沒?1.我不知道該刪掉還是重寫。2.在開始專案之前,我應該先...

程式設計師的bug修復寶典

bug,又名程式缺陷或者程式漏洞,是每個程式設計師每天都迴避不了的東西。程式設計師對bug的感情可謂是五味雜陳 一方面bug非常可惡,尤其是一些偶現的bug,它強大到可以摧毀乙個優秀程式設計師的意志 另一方面很多bug又是程式設計師自己親手寫下的,無奈之餘只能自嘲一句 不寫bug我們就要失業了!作為...