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-urlencodedkey1=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-Typeapplication/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…