HTTP?與?SpringBoot?參數(shù)提交與接收協(xié)議方式
HTTP 協(xié)議支持多種參數(shù)提交方式,主要取決于請(qǐng)求方法(Method)和內(nèi)容類(lèi)型(Content-Type)。
以下是主要的參數(shù)提交協(xié)議:
1. URL 查詢參數(shù) (Query Parameters)
- 請(qǐng)求方法: GET (也可用于其他方法)
- 格式:
?key1=value1&key2=value2 - 示例:
GET /users?id=123&name=John - 獲取方式:
- SpringBoot:
@RequestParam - Servlet:
request.getParameter()
- SpringBoot:
2. 表單提交 (Form Data)
- 請(qǐng)求方法: POST (也可用于 PUT/PATCH)
- Content-Type:
application/x-www-form-urlencoded或multipart/form-data - 格式:
application/x-www-form-urlencoded:key1=value1&key2=value2(類(lèi)似查詢參數(shù)但在請(qǐng)求體中)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()
- SpringBoot:
3. JSON 請(qǐng)求體 (JSON Payload)
- 請(qǐng)求方法: POST/PUT/PATCH/DELETE
- Content-Type:
application/json - 格式: JSON 對(duì)象
- 示例:
{
"name": "John",
"age": 30
}- 獲取方式:
- SpringBoot:
@RequestBody - Servlet: 通過(guò)
request.getReader()讀取輸入流
- SpringBoot:
4. XML 請(qǐng)求體 (XML Payload)
- 請(qǐng)求方法: POST/PUT/PATCH/DELETE
- Content-Type:
application/xml或text/xml - 格式: XML 文檔
- 示例:
<user> <name>John</name> <age>30</age> </user>
- 獲取方式:
- SpringBoot:
@RequestBody配合 XML 解析器 - Servlet: 通過(guò)
request.getReader()讀取輸入流
- SpringBoot:
5. RESTful 路徑參數(shù) (Path Variables)
- 請(qǐng)求方法: 任意方法
- 格式:
/resource/{id} - 示例:
GET /users/123 - 獲取方式:
- SpringBoot:
@PathVariable - Servlet: 需要手動(dòng)解析 URL
6. HTTP 頭部參數(shù) (Headers)
- 位置: HTTP 頭部
- 示例:
Authorization: Bearer token123 Accept-Language: en-US
- 獲取方式:
- SpringBoot:
@RequestHeader - Servlet:
request.getHeader()
7. Cookie 參數(shù)
- 位置: HTTP Cookie 頭部
- 示例:
Cookie: sessionId=abc123; username=John
- 獲取方式:
- SpringBoot:
@CookieValue - Servlet:
request.getCookies()
8. GraphQL 查詢
- 請(qǐng)求方法: POST/GET
- Content-Type:
application/json(通常) - 格式: GraphQL 查詢語(yǔ)言
- 示例:
{
"query": "{ user(id: 123) { name age } }"
}- 獲取方式: 需要專門(mén)的 GraphQL 處理器
9. WebSocket 參數(shù)
- 協(xié)議: WebSocket
- 格式: 自定義,通常為 JSON 或二進(jìn)制
- 獲取方式: 通過(guò) WebSocket API 處理
10. Server-Sent Events (SSE)
- 協(xié)議: HTTP 長(zhǎng)連接
- Content-Type:
text/event-stream - 格式: 特定的事件流格式
- 獲取方式: 通過(guò)專門(mén)的 SSE 客戶端處理
總結(jié)表
| 提交方式 | 典型 Content-Type | 主要用途 | SpringBoot 注解 |
|---|---|---|---|
| URL 查詢參數(shù) | - | GET 請(qǐng)求簡(jiǎn)單參數(shù) | @RequestParam |
| 表單數(shù)據(jù) | application/x-www-form-urlencoded | 傳統(tǒng)表單提交 | @RequestParam, @ModelAttribute |
| 多部分表單 | multipart/form-data | 文件上傳 | @RequestPart |
| JSON 請(qǐng)求體 | application/json | REST API 復(fù)雜數(shù)據(jù) | @RequestBody |
| XML 請(qǐng)求體 | application/xml | 傳統(tǒng) XML 接口 | @RequestBody |
| 路徑參數(shù) | - | RESTful URL 設(shè)計(jì) | @PathVariable |
| HTTP 頭部 | - | 認(rèn)證、語(yǔ)言偏好等 | @RequestHeader |
| Cookie | - | 會(huì)話管理、用戶追蹤 | @CookieValue |
到此這篇關(guān)于HTTP 與 SpringBoot 參數(shù)提交與接收協(xié)議方式的文章就介紹到這了,更多相關(guān)http與springboot參數(shù)提交內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java地理坐標(biāo)系及投影間轉(zhuǎn)換代碼示例
在地圖投影中,經(jīng)常需要將坐標(biāo)從不同的坐標(biāo)系之間進(jìn)行轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于java地理坐標(biāo)系及投影間轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2024-08-08
一篇文章帶你理解Java Spring三級(jí)緩存和循環(huán)依賴
這篇文章主要介紹了淺談Spring 解決循環(huán)依賴必須要三級(jí)緩存嗎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-09-09
java理論基礎(chǔ)函數(shù)式接口特點(diǎn)示例解析
這篇文章主要為大家介紹了java理論基礎(chǔ)函數(shù)式接口特點(diǎn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java的DataInputStream和DataOutputStream數(shù)據(jù)輸入輸出流
這里我們來(lái)看一下Java的DataInputStream和DataOutputStream數(shù)據(jù)輸入輸出流的使用示例,兩個(gè)類(lèi)分別繼承于FilterInputStream和FilterOutputStream:2016-06-06
idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作
這篇文章主要介紹了idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
MyBatis中使用#{}和${}占位符傳遞參數(shù)的各種報(bào)錯(cuò)信息處理方案
這篇文章主要介紹了MyBatis中使用#{}和${}占位符傳遞參數(shù)的各種報(bào)錯(cuò)信息處理方案,分別介紹了兩種占位符的區(qū)別,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

