国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

合宙LuatOS的個(gè)人空間 http://www.qingdxww.cn/space-uid-176273.html [收藏] [復(fù)制] [RSS]

博客

HTTP相關(guān)返回值異常如何解決(上篇)

已有 723 次閱讀2025-2-14 16:18 |個(gè)人分類:4G模組| 物聯(lián)網(wǎng), 單片機(jī), 4G模塊, 通訊模組, 嵌入式硬件

今天我們講講HTTP相關(guān)返回值異常如何解決(實(shí)例持續(xù)更新中)


HTTP介紹

HTTP(超文本傳輸協(xié)議,Hypertext Transfer Protocol)是用于在網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)交換的應(yīng)用層協(xié)議。它是萬(wàn)維網(wǎng)(WWW)的基礎(chǔ),允許客戶端(通常是網(wǎng)頁(yè)瀏覽器)與服務(wù)器之間進(jìn)行通信。以下是對(duì) HTTP 的一些基本介紹:

  1. 基本概念 請(qǐng)求-響應(yīng)模型: HTTP 使用請(qǐng)求-響應(yīng)模型。客戶端發(fā)送請(qǐng)求,服務(wù)器處理請(qǐng)求并返回響應(yīng)。 無(wú)狀態(tài)協(xié)議: 每個(gè)請(qǐng)求都是獨(dú)立的,服務(wù)器不會(huì)記住之前的請(qǐng)求狀態(tài)。這種設(shè)計(jì)簡(jiǎn)化了服務(wù)器的實(shí)現(xiàn),但可能需要其他機(jī)制(如 cookies)來(lái)管理會(huì)話狀態(tài)。
  2. 請(qǐng)求和響應(yīng)請(qǐng)求:

請(qǐng)求行: 包含請(qǐng)求方法(如 GET、POST)、請(qǐng)求的 URL 和 HTTP 版本。

請(qǐng)求頭: 提供有關(guān)客戶端環(huán)境的信息(如 User-Agent、Accept 等)。

請(qǐng)求體: 僅在某些請(qǐng)求方法(如 POST)中使用,包含要發(fā)送的數(shù)據(jù)。

響應(yīng):

狀態(tài)行: 包含 HTTP 版本、狀態(tài)碼(如 200、404、500)和狀態(tài)描述。

響應(yīng)頭: 提供有關(guān)響應(yīng)的信息(如 Content-Type、Content-Length 等)。

響應(yīng)體: 包含實(shí)際傳輸?shù)臄?shù)據(jù)(如 HTML 文檔、圖像等)。

  1. 常見(jiàn)的 HTTP 方法GET: 請(qǐng)求指定的資源,通常用于獲取數(shù)據(jù)。(模組支持)
    POST: 向指定資源提交數(shù)據(jù),通常用于創(chuàng)建或更新數(shù)據(jù)。(模組支持)
    PUT: 更新指定資源的內(nèi)容。
    DELETE: 刪除指定的資源。
    HEAD: 類似于 GET,但服務(wù)器只返回響應(yīng)頭,不返回響應(yīng)體。
  2. HTTP 狀態(tài)碼 HTTP 狀態(tài)碼用于表示請(qǐng)求的結(jié)果,分為五類:
    1xx: 信息性狀態(tài)碼(如 100 Continue)。
    2xx: 成功狀態(tài)碼(如 200 OK)。
    3xx: 重定向狀態(tài)碼(如 301 Moved Permanently)。
    4xx: 客戶端錯(cuò)誤狀態(tài)碼(如 404 Not Found)。
    5xx: 服務(wù)器錯(cuò)誤狀態(tài)碼(如 500 Internal Server Error)。

HTTP客戶端錯(cuò)誤狀態(tài)碼情況

案例分析以及如何解決


一、1xx信息性狀態(tài)碼

這些狀態(tài)碼表示請(qǐng)求已被接收,繼續(xù)處理請(qǐng)求。

100 Continue: 客戶端應(yīng)繼續(xù)發(fā)送請(qǐng)求的剩余部分。

1.1 狀態(tài)碼100的含義:

HTTP 狀態(tài)碼 100 Continue 是一個(gè)信息性狀態(tài)碼,表示客戶端應(yīng)繼續(xù)發(fā)送請(qǐng)求的剩余部分。它通常是在客戶端發(fā)送一個(gè)包含 Expect: 100-continue 頭的請(qǐng)求時(shí),服務(wù)器響應(yīng)的。

使用場(chǎng)景:

大文件上傳: 當(dāng)客戶端要上傳一個(gè)大文件時(shí),它可以先發(fā)送一個(gè)請(qǐng)求頭,詢問(wèn)服務(wù)器是否準(zhǔn)備好接收文件。這時(shí),服務(wù)器可以返回 100 Continue,表示可以繼續(xù)上傳文件。

節(jié)省帶寬: 如果服務(wù)器無(wú)法處理請(qǐng)求,返回 100 Continue 可以避免客戶端發(fā)送大量數(shù)據(jù),從而節(jié)省帶寬和資源。

具體工作流程:

客戶端發(fā)送請(qǐng)求: 客戶端發(fā)送一個(gè)帶有 Expect: 100-continue 的請(qǐng)求頭。 服務(wù)器響應(yīng): 如果服務(wù)器準(zhǔn)備好接收請(qǐng)求,返回 100 Continue,指示客戶端繼續(xù)發(fā)送請(qǐng)求體。 如果服務(wù)器無(wú)法處理請(qǐng)求(例如,身份驗(yàn)證失敗或請(qǐng)求格式不正確),則服務(wù)器可以直接返回相應(yīng)的錯(cuò)誤狀態(tài)碼(如 401 或 403),而不是 100 Continue。

101 Switching Protocols: 服務(wù)器已理解客戶端的請(qǐng)求,并將其協(xié)議更改為客戶端所請(qǐng)求的協(xié)議。

1.2 狀態(tài)碼101的含義:

HTTP 狀態(tài)碼 101 Switching Protocols 是一個(gè)信息性狀態(tài)碼,表示服務(wù)器已經(jīng)理解了客戶端的請(qǐng)求,并將協(xié)議更改為客戶端所請(qǐng)求的協(xié)議。這通常用于在 HTTP 協(xié)議和其他協(xié)議之間進(jìn)行切換,例如從 HTTP 協(xié)議切換到 WebSocket 協(xié)議。

使用場(chǎng)景

WebSocket 連接: 在建立 WebSocket 連接時(shí),客戶端首先發(fā)送一個(gè) HTTP 請(qǐng)求,要求服務(wù)器將協(xié)議切換到 WebSocket。若服務(wù)器支持這一請(qǐng)求并同意切換,它會(huì)返回 101 狀態(tài)碼。

協(xié)議升級(jí): 其他情況下,當(dāng)客戶端請(qǐng)求服務(wù)器使用不同的協(xié)議進(jìn)行通信時(shí)(如從 HTTP/1.1 切換到 HTTP/2),也會(huì)用到此狀態(tài)碼。

具體工作流程

客戶端發(fā)送請(qǐng)求: 客戶端發(fā)送一個(gè)帶有 Upgrade 頭的請(qǐng)求,表明希望切換協(xié)議。

請(qǐng)求示例:

  • GET /chat HTTP/1.1
  • Host: example.com
  • Upgrade: websocket
  • Connection: Upgrade
  • 服務(wù)器響應(yīng): 如果服務(wù)器支持請(qǐng)求的協(xié)議并同意切換,它會(huì)返回 101 Switching Protocols,表示協(xié)議已成功切換。

服務(wù)器響應(yīng)示例:

  • HTTP/1.1 101 Switching Protocols
  • Upgrade: websocket
  • Connection: Upgrade
  • 后續(xù)通信: 協(xié)議切換后,客戶端和服務(wù)器可以使用新協(xié)議進(jìn)行后續(xù)通信。


二、2xx成功狀態(tài)碼

這些狀態(tài)碼表示請(qǐng)求已成功處理。

200 OK: 請(qǐng)求成功,通常返回請(qǐng)求的資源。狀態(tài)碼200的含義:

HTTP 狀態(tài)碼 200 OK 是最常見(jiàn)的成功響應(yīng)狀態(tài)碼,表示請(qǐng)求已成功處理。它通常用于標(biāo)準(zhǔn)的 GET 或 POST 請(qǐng)求,表明服務(wù)器已成功接收到請(qǐng)求并返回了所請(qǐng)求的資源。

使用場(chǎng)景
  • GET 請(qǐng)求: 當(dāng)客戶端請(qǐng)求某個(gè)資源(如網(wǎng)頁(yè)、圖片等),并且服務(wù)器成功找到并返回該資源時(shí),服務(wù)器會(huì)返回 200 OK。
  • POST 請(qǐng)求: 當(dāng)客戶端向服務(wù)器提交數(shù)據(jù)(如表單數(shù)據(jù))并且服務(wù)器成功處理這些數(shù)據(jù)時(shí),也會(huì)返回 200 OK。此時(shí),響應(yīng)體可能包含操作結(jié)果的信息。
示例

圖片

201 Created: 請(qǐng)求成功并創(chuàng)建了新的資源。

狀態(tài)碼201的含義:

HTTP 狀態(tài)碼 201 Created 表示請(qǐng)求已成功處理,并且由于該請(qǐng)求,服務(wù)器創(chuàng)建了一個(gè)新的資源。這個(gè)狀態(tài)碼通常用于 POST 請(qǐng)求,特別是在客戶端向服務(wù)器提交數(shù)據(jù)以創(chuàng)建新資源時(shí)。

使用場(chǎng)景

資源創(chuàng)建: 當(dāng)客戶端通過(guò) POST 請(qǐng)求向服務(wù)器發(fā)送數(shù)據(jù)(例如,提交表單數(shù)據(jù))并成功創(chuàng)建一個(gè)新資源時(shí),服務(wù)器會(huì)返回 201 Created。

API 設(shè)計(jì): 在 RESTful API 中,201 狀態(tài)碼常用于表示新資源的創(chuàng)建成功,并且通常在響應(yīng)中包含指向該新資源的 URI。

示例

創(chuàng)建新資源的 POST 請(qǐng)求示例:

  • POST /api/users HTTP/1.1
  • Host: example.com
  • Content-Type: application/json
  • Content-Length: 45

{"name": "John Doe", "email": "[email protected]"} 服務(wù)器響應(yīng)示例:

  • HTTP/1.1 201 Created
  • Location: /api/users/123
  • Content-Type: application/json

{"id": 123, "name": "John Doe", "email": "[email protected]"}

關(guān)鍵要點(diǎn)
  • Location 頭: 通常在響應(yīng)中包含 Location 頭,指向新創(chuàng)建資源的 URI。
  • 響應(yīng)體: 可以在響應(yīng)體中返回新資源的詳細(xì)信息,幫助客戶端確認(rèn)創(chuàng)建結(jié)果。
202 Accepted: 請(qǐng)求已接受,但尚未處理。狀態(tài)碼202的含義:

HTTP 狀態(tài)碼 202 Accepted 表示請(qǐng)求已被接受進(jìn)行處理,但尚未完成。這意味著請(qǐng)求的處理是異步的,服務(wù)器已經(jīng)接收到請(qǐng)求并將其放入處理隊(duì)列中,但尚未提供最終結(jié)果。

使用場(chǎng)景

異步處理: 202 狀態(tài)碼通常用于那些需要較長(zhǎng)時(shí)間才能完成的操作,例如上傳大文件、復(fù)雜的數(shù)據(jù)處理或與外部服務(wù)的交互。

任務(wù)排隊(duì): 在某些情況下,服務(wù)器會(huì)返回 202 狀態(tài)碼以指示請(qǐng)求已被接受,但實(shí)際的處理將在后續(xù)時(shí)間內(nèi)完成。

示例

異步請(qǐng)求的 POST 請(qǐng)求示例:

  • POST /api/process-data HTTP/1.1
  • Host: example.com
  • Content-Type: application/json
  • Content-Length: 50

{"data": "large dataset or task details"} 服務(wù)器響應(yīng)示例:

  • HTTP/1.1 202 Accepted
  • Content-Type: application/json

{"message": "Your request is being processed"}

關(guān)鍵要點(diǎn)

請(qǐng)求已接受: 202 狀態(tài)碼表明請(qǐng)求已經(jīng)被接受,而不是直接表示成功完成。 結(jié)果不可用: 由于處理是異步的,客戶端通常需要通過(guò)其他機(jī)制(如輪詢或回調(diào))來(lái)獲取處理結(jié)果。

203 Non-Authoritative Information: 服務(wù)器成功處理了請(qǐng)求,但返回的信息可能來(lái)自另一來(lái)源。狀態(tài)碼203的含義:

HTTP 狀態(tài)碼 203 Non-Authoritative Information 表示請(qǐng)求已成功處理,但返回的信息可能不是來(lái)自原始服務(wù)器,而是來(lái)自一個(gè)代理服務(wù)器或其他中間實(shí)體。這意味著響應(yīng)的內(nèi)容可能經(jīng)過(guò)了修改或附加了額外的信息。

使用場(chǎng)景

代理服務(wù)器: 當(dāng)客戶端通過(guò)代理服務(wù)器發(fā)送請(qǐng)求時(shí),代理可能會(huì)返回 203 狀態(tài)碼以指示響應(yīng)的內(nèi)容不是來(lái)自原始服務(wù)器。

內(nèi)容修改: 如果代理對(duì)響應(yīng)進(jìn)行了某種形式的修改,比如添加了額外的頭信息,服務(wù)器可能會(huì)返回 203 狀態(tài)碼,告知客戶端這部分信息可能不具有權(quán)威性。

示例

通過(guò)代理服務(wù)器的請(qǐng)求示例:

  • GET /api/resource HTTP/1.1
  • Host: example.com

代理服務(wù)器的響應(yīng)示例:

  • HTTP/1.1 203 Non-Authoritative Information
  • Content-Type: application/json

{"data": "This data is modified or supplemented by the proxy"}

關(guān)鍵要點(diǎn)

非權(quán)威性信息: 203 狀態(tài)碼用于表示返回的信息可能不是最原始或權(quán)威的,客戶端應(yīng)謹(jǐn)慎對(duì)待這些信息。

不常用: 在實(shí)際應(yīng)用中,203 狀態(tài)碼的使用相對(duì)較少,大多數(shù)情況下,客戶端和服務(wù)器之間的直接通信更為常見(jiàn)。

204 No Content: 請(qǐng)求成功,但沒(méi)有返回內(nèi)容。狀態(tài)碼204的含義:

HTTP 狀態(tài)碼 204 No Content 表示請(qǐng)求已成功處理,但沒(méi)有內(nèi)容返回。這通常用于處理成功的請(qǐng)求,但沒(méi)有需要返回給客戶端的實(shí)體內(nèi)容。

使用場(chǎng)景

成功處理的請(qǐng)求: 當(dāng)客戶端發(fā)送請(qǐng)求(例如,DELETE 請(qǐng)求)并且服務(wù)器成功處理了該請(qǐng)求,但不需要返回任何內(nèi)容時(shí),可以使用 204 狀態(tài)碼。

更新操作: 在某些情況下,客戶端可能發(fā)送更新請(qǐng)求(如 PUT),服務(wù)器成功處理后,可以返回 204 狀態(tài)碼而不返回任何數(shù)據(jù)。

保持連接: 204 狀態(tài)碼可以用于保持與客戶端的連接,而不傳送實(shí)際的數(shù)據(jù)內(nèi)容。

示例

成功刪除資源的 DELETE 請(qǐng)求示例:

  • DELETE /api/resource/123 HTTP/1.1
  • Host: example.com

服務(wù)器響應(yīng)示例:

  • HTTP/1.1 204 No Content

關(guān)鍵要點(diǎn)

無(wú)內(nèi)容返回: 204 狀態(tài)碼明確表示沒(méi)有返回的內(nèi)容,客戶端不應(yīng)期望任何響應(yīng)體。

保持連接: 由于沒(méi)有內(nèi)容,204 響應(yīng)通常具有較小的負(fù)擔(dān)和較快的處理速度,有助于提高性能。

205 Reset Content: 請(qǐng)求成功,要求客戶端重置文檔視圖。狀態(tài)碼205的含義:

HTTP 狀態(tài)碼 205 Reset Content 表示請(qǐng)求已成功處理,但客戶端需要重置視圖或輸入字段。這通常用于表單提交后,服務(wù)器希望客戶端清除或重置其當(dāng)前的內(nèi)容。

使用場(chǎng)景

表單處理: 當(dāng)客戶端提交表單后,服務(wù)器可能會(huì)返回 205 狀態(tài)碼,指示客戶端重置表單輸入內(nèi)容,以便用戶可以進(jìn)行新的輸入。

UI 狀態(tài)重置: 在某些應(yīng)用程序中,服務(wù)器可能希望客戶端清除當(dāng)前的視圖狀態(tài)或數(shù)據(jù),以確保用戶體驗(yàn)的一致性。

示例

表單提交的 POST 請(qǐng)求示例:

  • POST /api/submit-form HTTP/1.1
  • Host: example.com
  • Content-Type: application/x-www-form-urlencoded

name=John&[email protected] 服務(wù)器響應(yīng)示例:

  • HTTP/1.1 205 Reset Content
關(guān)鍵要點(diǎn)

重置內(nèi)容: 205 狀態(tài)碼明確表示客戶端應(yīng)該重置其當(dāng)前的內(nèi)容或視圖狀態(tài),通常與表單操作相關(guān)。

不返回內(nèi)容: 和 204 狀態(tài)碼類似,205 響應(yīng)通常不包含實(shí)體內(nèi)容。

206 Partial Content: 服務(wù)器成功處理了部分 GET 請(qǐng)求,返回的是部分資源。狀態(tài)碼206的含義:

HTTP 狀態(tài)碼 206 Partial Content 表示服務(wù)器成功處理了部分 GET 請(qǐng)求。這通常用于當(dāng)客戶端請(qǐng)求資源的某一部分時(shí),服務(wù)器能夠滿足該請(qǐng)求并返回所請(qǐng)求的部分內(nèi)容。

使用場(chǎng)景

范圍請(qǐng)求: 客戶端可能會(huì)使用 Range 請(qǐng)求頭來(lái)請(qǐng)求資源的特定部分(例如,視頻流、音頻流或大型文件的下載)。服務(wù)器根據(jù)請(qǐng)求的范圍返回相應(yīng)的部分內(nèi)容。

大文件下載: 當(dāng)用戶下載大文件時(shí),支持恢復(fù)下載的客戶端可以請(qǐng)求文件的特定字節(jié)范圍,以便在網(wǎng)絡(luò)中斷時(shí)能夠繼續(xù)下載。

示例

范圍請(qǐng)求的 GET 請(qǐng)求示例:

評(píng)論 (0 個(gè)評(píng)論)

facelist

您需要登錄后才可以評(píng)論 登錄 | 立即注冊(cè)

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
返回頂部
主站蜘蛛池模板: 九九99精品| 亚洲欧美在线综合一区二区三区 | 国产一区二区三区手机在线观看 | 亚洲最新视频 | 欧美夜色 | 国产一级大片在线观看 | 向日葵.app在线观看 | 国产精品日本一区二区在线播放 | 国产精品亚洲欧美一级久久精品 | 麻豆导航 | 精品一本久久中文字幕 | 香蕉视频在线免费 | 手机看片日韩 | 国产毛片黄片 | 亚洲三级免费 | 99热精品久久只有精品黑人 | 国产成人精品免费青青草原app | 日本在线播放视频 | 欧美精品免费在线观看 | 国产欧美日韩综合精品一区二区 | 免费看男女做好爽好硬视频 | 天堂网站| 欧美成a人免费观看久久 | 亚洲精品高清在线 | 久久综合精品国产一区二区三区无 | 青青草国产免费久久久91 | 亚洲视频在线网站 | 久久激情五月丁香伊人 | 老汉tv永久视频福利在线观看 | 久久99热成人精品国产 | 成人a毛片| 偷拍第一页 | 青青青国产成人久久111网站 | 亚洲人成www在线播放 | 91九色在线播放 | 欧美三级超在线视频 | 日本最大色倩网站www | 丝瓜草莓向日葵芭比小猪 | 色综合久久综合欧美综合图片 | 欧美不卡激情三级在线观看 | 五月婷婷视频在线 |