HTTP中常見的各種狀態碼詳解及解決方案

来源:https://www.cnblogs.com/hongyizhang/archive/2019/01/04/10219632.html
-Advertisement-
Play Games

總結了一些常見的http的狀態碼,以及常見的解決方案。 一.各範圍內狀態碼大致含義 1xx:臨時響應(Informational),需要請求者繼續執行操作的狀態代碼,表示伺服器正在接受請求。 2xx:成功狀態碼(Success),已成功接受客戶端請求。 3xx:重定向狀態碼(Redirection) ...


總結了一些常見的http的狀態碼,以及常見的解決方案。

一.各範圍內狀態碼大致含義

1xx:臨時響應(Informational),需要請求者繼續執行操作的狀態代碼,表示伺服器正在接受請求。

2xx:成功狀態碼(Success),已成功接受客戶端請求。

3xx:重定向狀態碼(Redirection),需要客戶端做進一步操作來完成請求。

4xx:客戶端錯誤(Client Error),客戶端請求出錯導致服務端無法正常完成請求。

5xx:服務端錯誤(Server Error),伺服器出錯未能成功處理服務端請求。

 

二.常見狀態及解決方案

①404:(Not Found)伺服器無法找到請求的頁面或資源。

    a.此類報錯首先考慮我們的介面寫的時候正確。(可以借用postman來測試,postman的使用詳情可見另外一篇博客內容)

    b.其次可以檢查資源的路徑是否出錯。

 ②405:(Method Not Allowed )方法不允許,方法禁用。

 

    a.一般出現在servlet中比較常見.就是自己的service函數寫錯了。

    b.方法名稱寫錯,方法參數類型與標準不一致。

    c.方法異常、返回值類型與標準不一致。(這一般是前臺的問題,我們的解決方案是:把post請求換成get請求)

③500 :(Internal Server Error) 伺服器內部錯誤,不能完成客戶的請求。

    a.500報錯一般是後端伺服器問題,但也不排除前端出錯,例如後臺報序列化錯誤,可能是因為前端沒有設置content-Type=application/json。

    b.重要的是要查看自己寫的後端業務邏輯代碼有沒有問題,根據報錯提示查找bug。

    c.常見的錯誤位置:NullPointException,據庫中提取的數據沒有提取到而給另一個對象,傳遞了空值或註入某個對象,過程中出現空值.,沒有正確獲取到對象的而出現異常。

④501:( Not Implemented)尚未實施,或請求格式錯誤。

    a.一般考慮我們前端寫的ajax中的type:"post/get"是否出錯或者from表單中的method:"post/get"是否書寫錯誤。

 

三.狀態碼大全。

    1xx:(Informational),臨時響應,需要請求者繼續執行操作的狀態代碼,表示伺服器正在接受請求。

    100 :(Continue), 請求者應當繼續提出請求。伺服器返回此代碼表示已收到初始的請求,正在等待其餘部分。

    101:(Switching Protocols),切換協議, 請求者已要求伺服器切換協議,伺服器已確認並準備切換。

    

    2xx:成功狀態碼(Success),已成功接受客戶端請求。(2開頭的代碼一般是開發者在調試的時候看數據是否請求或發送成功的。)

    200 (OK) 伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁,對GET和POST請求的應答文檔跟在後面。

    201 (Created) 已創建,請求成功並且伺服器創建了新的資源,Location頭給出了它的URL。

    202 (Accepted ) 已接受,伺服器已接受請求,但尚未處理。該請求最終可能會或可能不會被執行,因為在實際處理時可能不允許該請求。

    203 ( Non-Authoritative Information) 非授權信息,伺服器已成功處理了請求,但返回的信息可能來自另一來源。

    204 (No Content) 無內容,伺服器成功處理了請求,但沒有返回任何內容。

    205 ( Reset Content)沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容。

    206 (Partial Content)客戶發送了一個帶有Range頭的GET請求(分塊請求),伺服器成功處理了部分 GET 請求。

 

    3xx:重定向狀態碼(Redirection),需要客戶端做進一步操作來完成請求。

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

    301  (Moved Permanently ) 永久移動,請求的網頁已永久移動到新位置。伺服器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。

    302 (Moved Temporatily) 類似於301,但是移動是臨時的。伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。

    303 (See Other) 查看其它位置,請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,伺服器返回此代碼。即該狀態碼存在的最主要意義是為了處理POST請求重定向到GET請求的情況

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

    305 (Use Proxy) 使用代理,請求者只能使用代理訪問請求的網頁。如果伺服器返回此響應,還表示請求者應使用代理。

    307 (Temporary Redirect) 臨時重定向,伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。

    

    4xx:客戶端錯誤(Client Error),客戶端請求出錯導致服務端無法正常完成請求。

    400 (Bad Request) 錯誤請求,伺服器不理解請求的語法。

    401 (Unauthorized)未授權,訪問被拒絕, 請求要求身份驗證。 對於需要登錄的網頁,伺服器可能返回此響應。

       401.1 - 登錄失敗。

       401.2 - 伺服器配置導致登錄失敗。 

       401.3 - 由於 ACL 對資源的限制而未獲得授權。

       401.4 - 篩選器授權失敗。

       401.5 - ISAPI/CGI 應用程式授權失敗。

       401.7 –訪問被 Web 伺服器上的 URL 授權策略拒絕。

    403 (Forbidden)禁止訪問, 伺服器拒絕請求。

    404 (Not Found)未找到, 伺服器找不到請求的網頁。是一個常見的狀態碼。

    405 (Method Not Allowed) 方法禁用,禁用請求中指定的方法。

    406 (Not Acceptable) 不接受,指定資源已找到,但無法使用請求的內容特性響應請求的網頁。

    407 (Proxy Authentication Required) 需要代理授權驗證,此狀態代碼與 401(未授權)類似,但指定請求者應當授權使用代理。

    408 (Request Timeout) 請求超時,伺服器等候請求時發生超時。

    409 (Conflict) 衝突,伺服器在完成請求時發生衝突。伺服器必須在響應中包含有關衝突的信息。

    410 (Gone) 已刪除,如果請求的資源已永久刪除,伺服器就會返回此響應。返回410表示文檔永久地離開了指定的位置,而404表示由於未知的原因文檔不可用。

    411 (Length Required)需要有效長度,伺服器不接受不含有效內容長度標頭欄位的請求。

    412 (Precondition Failed)未滿足前提條件, 伺服器未滿足請求者在請求中設置的其中一個前提條件。

    413 (Request Entity Too Large) 請求實體過大,伺服器無法處理請求,因為請求實體過大,超出伺服器的處理能力。 

    414 (Request URI Too Long) 請求的 URI(通常為網址)過長,伺服器無法處理。 

    415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。

    416 (Requested Range Not Satisfiable) 請求範圍不符合要求,如果頁面無法提供請求的範圍,則伺服器會返回此狀態代碼。

    417 (未滿足期望值) 伺服器未滿足"期望"請求標頭欄位的要求。

    423   鎖定的錯誤。 

 

    5xx:服務端錯誤(Server Error),伺服器出錯未能成功處理服務端請求。

    500 (Internal Server Error) 伺服器內部錯誤,伺服器遇到錯誤,無法完成請求。

    501 ( Not Implemented)尚未實施, 伺服器不具備完成請求的功能。例如,伺服器無法識別請求方法時可能會返回此代碼。

    502 (Bad Gateway)錯誤網關, 伺服器作為網關或代理,從上游伺服器收到無效響應。

    503 (Service Unavailable)服務不可用, 伺服器目前無法使用(由於超載或停機維護)。通常,這隻是暫時狀態。

    504 (Gateway Timeout) 網關超時,伺服器作為網關或代理,但是沒有及時從上游伺服器收到請求。

    505 (HTTP Version Not Supported )HTTP 版本不受支持,伺服器不支持請求中所用的 HTTP 協議版本。

       


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Generator 函數是 ES6 提供的一種非同步編程解決方案 async 函數使得非同步操作變得更加方便,是 Generator 函數的語法糖。 js單線程的原因是:避免DOM渲染衝突! 更新:2019.1.4 非同步的事件不是立即放到非同步隊列中。想setTimeout是到了設置的時間才放到非同步隊列中 ...
  • 事件流 事件冒泡 IE的事件流叫做事件冒泡,即事件開始時由最具體的元素接收,然後逐級向上傳播到較為不具體的節點(文檔)。如下代碼: 如果你點擊了上面的div元素,那麼這個click事件會按照如下順序傳播: (1)<div> (2)<body> (3)<html> (4)document 所有現代瀏覽 ...
  • 項目是拿 echarts + 百度地圖 來做可視化界面,現在到收尾階段慢慢優化。 先附代碼: 如下圖,預設圓點顏色為紅色: 其中item列印出如下圖: 發現marker(小圓點)即為html片段,要改變小圓點顏色只需自定義html即可。 附代碼: 效果圖: 同理,要改變小圓點形狀,重寫html片段即 ...
  • 跨域請求域有兩種常用解決方案,jsonp和cors, 因為jsonp只能解決get請求問題,我這裡用的是cors方法。 js前端ajax請求: $.ajax({ url: "http://192.168.0.43:9030/Home/GetTextValue", //需要請求的路徑(註意,部署的時候 ...
  • 一、類的理論 1、類的核心概念:多態 是說父類的通用行為可以被子類用更特殊的行為重寫 二、類的機制 1、構造函數 類實例是有一個特殊的類方法構造的,這個方法名通常和類名一致; 類構造函數屬於類,構造函數大多需要用new來調。 2、類的多態 其實就是子類可以改寫父類的同名方法也可以調用繼承自父類的同名 ...
  • lastIndexOf() 方法可返回一個指定的字元串值最後出現的位置,在一個字元串中的指定位置從後向前搜索 var str = 'Hello World' str.lastIndexOf('Hello') 如果能匹配到 --> 返回一個指定的字元串值最後出現的位置 str.lastIndexOf( ...
  • //組件引入import pager from '../../component/pager/pager.vue' //組件調用聲明components:{ pager} //參數data () { return { pageSize: 30, //總頁數 -- 後臺傳值 pageNo: 2 //當 ...
  • 個人認為:margin是用來隔開元素與元素的間距;padding是用來隔開元素與內容的間隔。margin用於佈局分開元素使元素與元素互不相干;padding用於元素與內容之間的間隔,讓內容(文字)與(包裹)元素之間有一段“呼吸距離”。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...