当前位置: 首页 > news >正文

Http请求参数的区别

1.Query String Parameters(查询字符串参数)

定义

       以键值对形式附加在URL末尾,以?开头,多个参数用&分隔。例如https://example.com/api?name=John&age=30

特点

       数据位置:URL中,直接暴露在浏览器地址栏。

       数据类型:仅支持字符串(需URL编码特殊字符,如空格转为%20)。

       长度限制:受URL长度限制(通常2048字符,浏览器和服务器可能不同)。

用途

       ①GET请求的参数传递(如搜索、筛选)。

       ②简单参数的传递(如分页、排序)。

后端处理

       通过request.query(Node.js)、$_GET(PHP)或@RequestParam(Spring)直接获取。

举例

// 前端(URL拼接)
const url = `https://example.com/api?name=${encodeURIComponent('John Doe')}`;

2. Form Data(表单数据)

定义

       以键值对形式封装在HTTP请求体中,通过Content-Type: application/x-www-form-urlencodedmultipart/form-data传输。

特点

数据位置:请求体中,不暴露在URL。

数据类型

   application/x-www-form-urlencoded:键值对编码为key1=value1&key2=value2(类似Query String)。

   multipart/form-data:支持文件上传,数据以多部分形式组织,每部分有独立边界(boundary)。

用途

        HTML表单提交(如登录、注册)。文件上传(需用multipart/form-data)。

后端处理

   application/x-www-form-urlencoded:通过request.body(Node.js)、$_POST(PHP)或@RequestParam(Spring)获取。

   multipart/form-data:需特殊处理文件(如Node.js的multer、Spring的MultipartFile)。

举例

<!-- HTML表单 -->
<form action="/upload" method="post" enctype="multipart/form-data"><input type="text" name="username"><input type="file" name="avatar"><button type="submit">Submit</button>
</form>

3. Request Payload(请求负载)

定义: 

       以原始数据格式(如JSON、XML)封装在请求体中,通过Content-Type: application/json等指定。

特点

       数据位置:请求体中,不暴露在URL。

       数据类型:支持复杂结构(如嵌套对象、数组),适合API交互。

用途

       RESTful API的请求(如创建、更新资源)。传递结构化数据(如用户信息、配置)。

后端处理

       通过request.body(Node.js需中间件如body-parser)、@RequestBody(Spring)解析为对象。

举例

// 前端(Fetch API)
fetch('https://example.com/api/users', {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({ name: 'John', age: 30 })
});

对比总结

特性Query String ParametersForm DataRequest Payload
数据位置URL请求体请求体
数据类型字符串(需编码)键值对或文件任意格式(如JSON、XML)
长度限制有(URL长度限制)
安全性低(暴露在URL)中(不暴露在URL,但可能被缓存)高(不暴露在URL)
适用场景GET请求、简单参数HTML表单提交、文件上传RESTful API、复杂数据交互
后端解析方式request.query$_GETrequest.body$_POSTrequest.body@RequestBody

如何选择?

①GET请求:用Query String Parameters

②HTML表单提交:用Form Data(默认application/x-www-form-urlencoded,文件上传用multipart/form-data)。

③API交互:用Request Payload(推荐JSON格式)。

 结语          

身陷泥泞

也有权仰望星空

!!

http://www.lqws.cn/news/559405.html

相关文章:

  • 户外人像要怎么拍 ?
  • 行为型 - 责任链模式详解
  • gantt-task-react的改造使用
  • MCP基础知识一
  • 【原理图设计】5Vto3.7Vto1.5V电源板一
  • 基于Uniapp+SpringBoot+Vue 的在线商城小程序
  • 前端react面试题之实现网页多选搜索框
  • 变长字节的数字表示法vb224
  • 抽屉打印公共组件想要实现的打印预览样式效果
  • 个人日记本小程序开发方案(使用IntelliJ IDEA)
  • C语言---常见的字符函数和字符串函数介绍
  • 【EDA软件】【联合Modelsim 同步FIFO仿真】
  • FPGA原理结构
  • 用AI给AR加“智慧”:揭秘增强现实智能互动的优化秘密
  • FPGA设计的用户约束
  • 领域驱动设计(DDD)【23】之泛化:从概念到实践
  • Spring Cloud Gateway 实战:网关配置与 Sentinel 限流详解
  • win10部署本地LLM和AI Agent
  • NLP——RNN传统模型
  • Linux系统环境编程之进程1
  • Jina-Embeddings-V4:多模态向量模型的革命性突破与实战指南
  • 华为云Flexus+DeepSeek征文|基于Dify构建AI资讯语音播报工作流
  • 鸿蒙5:组件监听和部分状态管理V2
  • Conformal LEC:官方学习教程
  • 【软考高项论文】论信息系统项目的沟通管理
  • [Andrej Karpathy_2] vibe coding | 大型语言模型的1960年代 | 自主性滑块
  • 某省赛题-windows内存取证
  • 【Linux】mmap分析
  • Excel限制编辑:保护表格的实用功能
  • 嵌入式网络通信与物联网协议全解析:Wi-Fi、BLE、LoRa、ZigBee 实战指南