query 与 params:选择正确的参数传递方式

发布时间:2023年12月28日

在这里插入图片描述

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6
🍨 阿珊和她的猫_CSDN个人主页
🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》
🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

一、引言

介绍 query 和 params 的概念和作用

在 HTTP 请求中,query 和 params 都是用于传递请求参数的方式。

但是,它们的作用和使用方式略有不同。

  1. query:query 用于将请求参数放在 URL 中传递。它将请求参数作为键值对,用 “?” 符号分隔,放在 URL 的查询字符串中。例如,GET 请求中通过 query 传递参数的方法如下:
GET /some/path?param1=value1&param2=value2 HTTP/1.1

在这个例子中,“?param1=value1&param2=value2” 就是 query,它将请求参数传递给服务器。

  1. params:params 用于将请求参数放在请求体中传递。它将请求参数封装成键值对,用逗号分隔,放在请求体的 JSON 或 XML 格式中。例如,POST 请求中通过 params 传递参数的方法如下:
POST /some/path HTTP/1.1
Content-Type: application/json

{
 "param1": "value1",
 "param2": "value2"
}

在这个例子中,请求体中的 JSON 格式包含了请求参数,它将请求参数传递给服务器。

总的来说,query 用于将请求参数放在 URL 中传递,而 params 用于将请求参数放在请求体中传递。它们的作用和使用方式不同,但都是 HTTP 请求中传递请求参数的重要方式。

二、理解 query 和 params

查询参数(query)的定义和用法

在 URL 中传递参数
使用查询字符串格式

查询参数(query)是指在 URL 中通过键值对的形式传递的参数,它用于在 URL 中增加额外的信息,如查询条件、排序方式、页码等。查询参数的定义和使用方法如下:

  1. 定义查询参数:查询参数通常使用键值对的形式定义,键和值之间用 “=” 符号分隔。例如,定义一个查询参数 “page” 的值为 “2”,可以写成 “page=2”。

  2. 添加查询参数:在 URL 中添加查询参数的方法是将键值对放在 URL 的查询字符串中,用 “?” 符号分隔。例如,将查询参数 “page” 的值为 “2” 添加到 URL 中,可以写成:

/some/path?page=2
  1. 获取查询参数:服务器可以通过 URL 中的查询字符串获取查询参数的值。例如,从 URL 中获取查询参数 “page” 的值,可以写成:
page = request.args.get('page')
  1. 处理查询参数:查询参数可以用于实现各种功能,如查询条件、排序方式、页码等。服务器可以根据查询参数的值来处理请求,并根据处理结果返回相应的响应。

总的来说,查询参数是 URL 中一种重要的参数类型,它用于在 URL 中增加额外的信息,如查询条件、排序方式、页码等。查询参数的定义和使用方法包括定义查询参数、添加查询参数、获取查询参数和处理查询参数等步骤。

请求参数(params)的定义和用法

在请求体中传递参数
常见的请求方法:GET、POST、PUT、DELETE

请求参数(params)是指在请求体中通过键值对的形式传递的参数,它用于在请求体中增加额外的信息,如请求数据、查询条件、排序方式等。请求参数的定义和使用方法如下:

  1. 定义请求参数:请求参数通常使用键值对的形式定义,键和值之间用 “=” 符号分隔。例如,定义一个请求参数 “data” 的值为 “{‘name’: ‘John’, ‘age’: 30}”,可以写成 “data={‘name’: ‘John’, ‘age’: 30}”。

  2. 添加请求参数:在请求体中添加请求参数的方法是将键值对放在请求体的 JSON 或 XML 格式中,用逗号分隔。例如,将请求参数 “data” 的值为 “{‘name’: ‘John’, ‘age’: 30}” 添加到请求体中,可以写成:

Content-Type: application/json

{
 "data": {"name": "John", "age": 30}
}
  1. 获取请求参数:服务器可以通过请求体中的请求参数的值。例如,从请求体中获取请求参数 “data” 的值,可以写成:
data = request.get_json().get('data')
  1. 处理请求参数:请求参数可以用于实现各种功能,如请求数据、查询条件、排序方式等。服务器可以根据请求参数的值来处理请求,并根据处理结果返回相应的响应。

总的来说,请求参数是请求体中一种重要的参数类型,它用于在请求体中增加额外的信息,如请求数据、查询条件、排序方式等。请求参数的定义和使用方法包括定义请求参数、添加请求参数、获取请求参数和处理请求参数等步骤。

三、比较 query 和 params

语法和格式的区别

查询参数(query)和请求参数(params)都是用于在 HTTP 请求中传递参数的方式,但它们在语法和格式上有所不同。

  1. 语法:查询参数使用 URL 中的查询字符串传递参数,参数之间用 “&” 符号分隔。请求参数使用请求体中的 JSONXML 格式传递参数,参数之间用逗号分隔。

  2. 格式:查询参数的格式通常为 “key=value”,请求参数的格式通常为 “key: value”。

  3. 作用:查询参数主要用于传递 URL 中的查询条件,如搜索关键字、排序方式等。请求参数主要用于传递请求体中的请求数据,如用户信息、商品信息等。

总的来说,查询参数和请求参数都是 HTTP 请求中传递参数的重要方式,但它们在语法和格式上有所不同。查询参数主要用于 URL 中的查询条件,请求参数主要用于请求体中的请求数据。

query 参数使用键值对表示,以问号开头,用&连接多个参数
params 参数可以是键值对、数组或对象,根据请求方法的不同,以不同的方式传递

功能和用途的差异

query 和 params 都是 HTTP 请求中传递参数的方式,但它们在功能和用途上有所不同。

  1. 功能:query 主要用于传递 URL 中的查询条件,如搜索关键字、排序方式等。而 params 主要用于传递请求体中的请求数据,如用户信息、商品信息等。

  2. 用途:query 主要用于服务器端处理请求,并返回响应。而 params 主要用于客户端向服务器端发送请求,以实现特定的功能。

总的来说,query 和 params 都是 HTTP 请求中传递参数的重要方式,但它们在功能和用途上有所不同。query 主要用于服务器端处理请求,而 params 主要用于客户端向服务器端发送请求。

query 参数主要用于获取数据,如分页、筛选等
params 参数更适合用于修改数据、传递复杂的实体信息

使用场景和示例

query 和 params 都是 HTTP 请求中传递参数的方式,但它们在场景和示例上有所不同。

  1. query 使用场景:query 主要用于传递 URL 中的查询条件,如搜索关键字、排序方式等。例如,在搜索商品时,可以使用 query 传递搜索关键字,如:
GET /products?search=smartphone
  1. params 使用场景:params 主要用于传递请求体中的请求数据,如用户信息、商品信息等。例如,在注册用户时,可以使用 params 传递用户信息,如:
POST /users
{
   "name": "John",
   "email": "john@example.com",
   "password": "password"
}

总的来说,query 和 params 都是 HTTP 请求中传递参数的重要方式,但它们在场景和示例上有所不同。query 主要用于传递 URL 中的查询条件,而 params 主要用于传递请求体中的请求数据。

四、最佳实践和注意事项

  1. 参数命名规范:参数名称应该清晰、易于理解,遵循驼峰命名法或下划线命名法等规范。

  2. 参数格式化和校验:在客户端对参数进行格式化时,确保参数的格式符合服务器的预期。同时,在服务器端对参数进行校验时,确保参数的有效性和安全性。

  3. 避免 SQL 注入等安全问题:在客户端对参数进行格式化时,使用参数化查询或预处理语句等方式,避免 SQL 注入等安全问题。在服务器端对参数进行校验时,确保参数的有效性和安全性。

总的来说,query 和 params 最佳实践和注意事项在于命名规范、格式化和校验参数,以及避免 SQL 注入等安全问题。遵循这些最佳实践和注意事项,可以确保 HTTP 请求中的参数传递更加高效、安全和可靠。

五、结论

总结 query 和 params 的特点和应用场景

query 和 params 都是 HTTP 请求中传递参数的方式,但它们在语法、格式、功能和用途上有所不同。

1. 特点:

  • query:使用 URL 中的查询字符串传递参数,参数之间用 “&” 符号分隔。
  • params:使用请求体中的 JSON 或 XML 格式传递参数,参数之间用逗号分隔。

2. 应用场景:

  • query:主要用于传递 URL 中的查询条件,如搜索关键字、排序方式等。
  • params:主要用于传递请求体中的请求数据,如用户信息、商品信息等。

总的来说,query 和 params 都是 HTTP 请求中传递参数的重要方式,但它们在语法、格式、功能和用途上有所不同。query 主要用于传递 URL 中的查询条件,而 params 主要用于传递请求体中的请求数据。

文章来源:https://blog.csdn.net/weixin_42554191/article/details/135243521
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。