HTTP 與 SpringBoot 參數提交與接收協議方式

HTTP 協議支持多種參數提交方式,主要取決于請求方法(Method)和內容類型(Content-Type)。

以下是主要的參數提交協議:


1. URL 查詢參數 (Query Parameters)

  • 請求方法: GET (也可用于其他方法)

  • 格式:??key1=value1&key2=value2

  • 示例:?GET /users?id=123&name=John

  • 獲取方式:

    • SpringBoot:?@RequestParam

    • Servlet:?request.getParameter()

2. 表單提交 (Form Data)

  • 請求方法: POST (也可用于 PUT/PATCH)

  • Content-Type:?application/x-www-form-urlencoded?或?multipart/form-data

  • 格式:

    • application/x-www-form-urlencoded:?key1=value1&key2=value2?(類似查詢參數但在請求體中)

    • multipart/form-data: 用于文件上傳,包含邊界分隔符

  • 示例:

    <form action="/submit" method="post" enctype="application/x-www-form-urlencoded"><input name="username" value="John"><input type="submit">
    </form>
  • 獲取方式:

    • SpringBoot:?@RequestParam?或?@ModelAttribute

    • Servlet:?request.getParameter()

3. JSON 請求體 (JSON Payload)

  • 請求方法: POST/PUT/PATCH/DELETE

  • Content-Type:?application/json

  • 格式: JSON 對象

  • 示例:

    json

    {"name": "John","age": 30
    }
  • 獲取方式:

    • SpringBoot:?@RequestBody

    • Servlet: 通過?request.getReader()?讀取輸入流

4. XML 請求體 (XML Payload)

  • 請求方法: POST/PUT/PATCH/DELETE

  • Content-Type:?application/xml?或?text/xml

  • 格式: XML 文檔

  • 示例:

    <user><name>John</name><age>30</age>
    </user>
  • 獲取方式:

    • SpringBoot:?@RequestBody?配合 XML 解析器

    • Servlet: 通過?request.getReader()?讀取輸入流

5. RESTful 路徑參數 (Path Variables)

  • 請求方法: 任意方法

  • 格式:?/resource/{id}

  • 示例:?GET /users/123

  • 獲取方式:

    • SpringBoot:?@PathVariable

    • Servlet: 需要手動解析 URL

6. HTTP 頭部參數 (Headers)

  • 位置: HTTP 頭部

  • 示例:

    Authorization: Bearer token123
    Accept-Language: en-US
  • 獲取方式:

    • SpringBoot:?@RequestHeader

    • Servlet:?request.getHeader()

7. Cookie 參數

  • 位置: HTTP Cookie 頭部

  • 示例:

    Cookie: sessionId=abc123; username=John
  • 獲取方式:

    • SpringBoot:?@CookieValue

    • Servlet:?request.getCookies()

8. GraphQL 查詢

  • 請求方法: POST/GET

  • Content-Type:?application/json?(通常)

  • 格式: GraphQL 查詢語言

  • 示例:

    {"query": "{ user(id: 123) { name age } }"
    }
  • 獲取方式: 需要專門的 GraphQL 處理器

9. WebSocket 參數

  • 協議: WebSocket

  • 格式: 自定義,通常為 JSON 或二進制

  • 獲取方式: 通過 WebSocket API 處理

10. Server-Sent Events (SSE)

  • 協議: HTTP 長連接

  • Content-Type:?text/event-stream

  • 格式: 特定的事件流格式

  • 獲取方式: 通過專門的 SSE 客戶端處理


總結表

提交方式典型 Content-Type主要用途SpringBoot 注解
URL 查詢參數-GET 請求簡單參數@RequestParam
表單數據application/x-www-form-urlencoded傳統表單提交@RequestParam,?@ModelAttribute
多部分表單multipart/form-data文件上傳@RequestPart
JSON 請求體application/jsonREST API 復雜數據@RequestBody
XML 請求體application/xml傳統 XML 接口@RequestBody
路徑參數-RESTful URL 設計@PathVariable
HTTP 頭部-認證、語言偏好等@RequestHeader
Cookie-會話管理、用戶追蹤@CookieValue

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916264.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916264.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916264.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Lua(數組)

Lua 數組基礎概念Lua 中的數組實際上是用整數索引的 table&#xff0c;是一種特殊形式的表。數組索引通常從 1 開始&#xff08;Lua 慣例&#xff09;&#xff0c;但也可以從其他值開始。創建數組通過表構造器初始化數組&#xff1a;-- 索引從 1 開始的數組 local arr {10, …

【Docker項目實戰】在Docker環境下部署go-file文件分享工具

【Docker項目實戰】在Docker環境下部署go-file文件分享工具一、go-file介紹1.1 go-file簡介1.2 go-file特點1.3 go-file使用場景二、本地環境介紹2.1 本地環境規劃2.2 本次實踐介紹三、本地環境檢查3.1 檢查Docker服務狀態3.2 檢查Docker版本3.3 檢查docker compose 版本四、下…

C++基礎學習——文件操作詳解

一、文件流類概述 C 標準庫提供了三個主要的文件流類&#xff1a; ifstream (輸入文件流)&#xff1a;用于從文件讀取數據ofstream (輸出文件流)&#xff1a;用于向文件寫入數據fstream (文件流)&#xff1a;既可讀又可寫 這些類都繼承自 iostream 類&#xff0c;因此可以使用 …

Android補全計劃 DrawerLayout使用

DrawerLayout其實用了很久了&#xff0c;甚至封裝了一些代碼方便不同項目使用&#xff0c;但重構代碼的時候突然意識到這塊內容很不成體系&#xff0c;因此又參考了些文檔&#xff0c;組建了自己的一個文檔。 toolbardrawerlayout能寫的效果很多&#xff0c;在此我也只是截取了…

人工智能之數學基礎:概率論之韋恩圖的應用

韋恩圖的應用由于事件的計算有時候太過于抽象了&#xff0c;此時我們可以使用韋恩圖的方式來進行驗證&#xff0c;我們下面來舉一個例子&#xff0c;A∪B&#xff09;-CA∪(B-C)是否成立&#xff1f;我們可以通過韋恩圖來完成這個任務&#xff1a;我們通過這種方式來一點一點的…

小白成長之路-部署Zabbix7(二)

文章目錄一、zabbix-自動發現二、自動注冊三、zabbix-網易云郵箱-發送消息二、zabbix-釘釘告警總結一、zabbix-自動發現 1.在準備兩臺虛擬機&#xff0c;我的是192.168.144.12,192.168.144.13 server換成zabbix服務器的ip地址 vim /etc/zabbix/zabbix_agentd.conf 2.創建自動…

CMU15445-2024fall-project4踩坑經歷

project4目錄Task1Task2ReconstructSeqScanTask3InsertCommitTxnMgrDbgGenerateNewUndoLog And GenerateUpdateUndoLogUpdate And Delete垃圾回收Task4Index Insert并發控制Index ScanDelete、Update并發控制主鍵更新Bonus 1Bonus 2處理寫傾斜感謝CMU的教授們給我們分享了如此精…

C++20 協程

摘要&#xff1a;C20 引入的協程機制為異步編程提供了輕量級解決方案&#xff0c;其核心優勢在于通過用戶態調度實現高效的上下文切換&#xff0c;適用于 I/O 密集型任務、生成器模式等場景。本文系統闡述 C20 協程的底層原理與實踐要點&#xff0c;首先解析協程的基本結構&…

《計算機組成原理與匯編語言程序設計》實驗報告二 基本數字邏輯及漢字顯示

目 錄 一、實驗學時 二、實驗目的 三、實驗要求 四、實驗內容 五、實驗步驟 1、打開Logisim軟件&#xff0c;列出并行四位二進制全加器邏輯電路真值表&#xff0c;并使用與、或、非、異或等基本原件實現并行四位二進制全加器邏輯電路&#xff0c;鋪設完成后進行測試進而…

問卷調查小程序的設計與實現

問卷調查小程序的設計與實現&#xff1a;技術與功能全解析在數字化時代&#xff0c;問卷調查成為數據收集的重要工具。一款高效、易用的問卷調查小程序能夠顯著提升用戶體驗和數據質量。本文將深入探討基于現代技術棧的問卷調查小程序的設計與實現&#xff0c;涵蓋核心功能、技…

STM32項目實戰:正弦波

波形發生器對我的錢包不怎么友好&#xff0c;手里面有stm32f103c8t6&#xff0c;于是就想,放在哪兒吃灰也是吃灰&#xff0c;不如做個正弦波發生器。方案 dac沒怎么用過&#xff0c;所以打算使用輸出模擬正弦波。我們決定采用以下方案&#xff1a;1.使用TIM2_CH3&#xff08;PA…

Unity 時間抗鋸齒(Temporal Antialiasing, TAA)技術解析

時間抗鋸齒&#xff08;Temporal Antialiasing, TAA&#xff09;技術解析 一、什么是時間抗鋸齒&#xff08;TAA&#xff09;&#xff1f; 時間抗鋸齒&#xff08;TAA&#xff09;是一種先進的實時抗鋸齒技術&#xff0c;通過在時間維度上積累多幀渲染數據&#xff0c;實現比傳…

uniapp打開導航軟件并定位到目標位置的實現

/*** 打開導航* param location 經緯度(例如&#xff1a;"117.214713,39.116884")* param address 地址*/ export function mapNavigation(location, address) {const locationArr location.split(,)const longitude locationArr[0]const latitude locationArr[1]…

Mysql實現高可用(主從、集群)

一、背景 需求&#xff1a;客戶要實現Mysql8.0高可用&#xff0c;出現故障時&#xff0c;需要實現自動切換。 分析&#xff1a;實現切換有兩種方式&#xff0c;一種數據庫自動切換&#xff0c;一種代碼實現。 本著麻煩別人&#xff0c;別麻煩自己的原則&#xff0c;得給客戶的D…

AI編程革命:自動化代碼生成、低代碼開發與智能優化實踐全景解析

AI編程革命&#xff1a;自動化代碼生成、低代碼開發與智能優化實踐全景解析 人工智能正在重塑軟件開發的基本范式&#xff0c;從自動化代碼生成到低代碼開發平臺&#xff0c;再到算法智能優化&#xff0c;AI編程技術正以指數級速度改變開發者工作方式。 一、自動化代碼生成技術…

[實戰] 用1 PPS 馴服本地恒溫晶振(OCXO/TCXO)

1 PPS 馴服本地恒溫晶振&#xff08;OCXO/TCXO&#xff09; “讓任何工程師都能在一周內做出自己的 GPSDO” 文章目錄1 PPS 馴服本地恒溫晶振&#xff08;OCXO/TCXO&#xff09;前言1 系統總體框圖2 硬件清單與連接3 時間間隔測量&#xff08;TDC&#xff09;原理4 數字鎖相環算…

基于RK3576+FPGA的無人機飛控系統解決方案

基于RK3576FPGA的無人機飛控系統解決方案設計如下&#xff1a;一、硬件架構設計?異構計算核心模塊?主控采用RK3576處理器&#xff0c;四核Cortex-A72&#xff08;2.3GHz&#xff09;運行路徑規劃算法&#xff08;A*、RRT*&#xff09;&#xff0c;支持動態避障響應時間<50…

2025暑期—05神經網絡-卷積神經網絡

1. 卷積神經網絡實際上就是避免過擬合&#xff0c;就是“特征”神經網絡。這個特征和卷積核相關。卷積和相關類似&#xff0c;有點是本質屬性和輸出屬性的感覺。著重注意三通道卷積padding 上下左右、前后都要加邊池化就是解決特征過多問題&#xff0c;縮小1倍較多。均值池化&a…

Elasticsearch部署全攻略:編譯安裝與 Yum 安裝實踐,日志切割及報錯處理

前言&#xff1a;在 Linux 運維工作中&#xff0c;Elasticsearch 的部署與運維是高頻需求——無論是快速搭建測試環境還是構建生產級集群&#xff0c;選擇合適的安裝方式&#xff08;編譯安裝或 Yum 安裝&#xff09;直接影響后續維護效率。同時&#xff0c;日志的合理切割能避…

TypeScript 配置參數詳解 (tsconfig.json)

文章目錄前言核心配置基本選項嚴格類型檢查選項模塊解析選項Source Map 選項實驗性選項其他選項文件包含/排除選項詳細用法示例最佳實踐建議前言 tsconfig.json 是 TypeScript 項目的配置文件&#xff0c;用于指定編譯選項和文件包含規則。以下是所有主要配置參數的中文詳解&a…