软件测试 —— Postman(2)

软件测试 —— Postman(2)

  • GET
      • URL结构
        • 协议与主机名
        • 路径
        • 查询字符串(Query String)
      • 总结
  • urlcode和urldecode
  • Params 参数
  • Authorization
      • 基本结构
      • 常见的认证方案
        • 1. Basic 认证
        • 2. Bearer Token (OAuth 2.0)
        • 3. API 密钥
        • 4. 其他认证方案
      • 使用场景
      • 示例 - 在Postman中添加Authorization头
  • Headers 请求头
      • 1. 通用头 (General Headers)
      • 2. 请求头 (Request Headers)
      • 示例 - 在Postman中添加Headers
  • Body 请求体
      • 请求体 (Request Body)
        • 1. **application/json**
        • 2. **application/x-www-form-urlencoded**
        • 3. **multipart/form-data**
        • 4. **text/xml 或 application/xml**
        • 5. **raw**
      • 响应体 (Response Body)
      • 在Postman中设置请求体

我们之前已经把postman下好,并且简单的使用了一下postman的功能,我们接下来就要对postman的一些其他功能进行探索,如果没看过上一篇的可以点击这里:

https://blog.csdn.net/qq_67693066/article/details/145240384

GET

我们之前已经会简单的发送一个get请求获取信息了,接下来我想要测试一下这个百度的搜索功能是不是准确有用的:

我们来看看我们在百度搜索老番茄,上面的url是什么样的:
在这里插入图片描述
然后把这个url复制到我们的postman里:
在这里插入图片描述
然后我们的postman自动会把参数给提取出来,我们看到在这个url请求中有这么多的参数,我们来分析一下:

这个URL是百度搜索引擎(Baidu)的一个搜索结果页面的链接,它包含了多个查询参数用于定制和跟踪用户的搜索行为。下面是对该URL及其各个部分的详细分析:

URL结构

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E8%80%81%E7%95%AA%E8%8C%84&oq=%25E7%258E%258B%25E7%2580%259A%25E5%2593%25B2&rsv_pq=c1e86d7e000fef12&rsv_t=16d0woFpOK5YzfU54LMwvuDPncgZQZfOPBgPgh%2BTzN4qeL20hDD%2BA0kGlVE&rqlang=cn&rsv_enter=1&rsv_dl=tb&rsv_sug3=8&rsv_sug1=4&rsv_sug7=100&rsv_sug2=0&rsv_btype=t&inputT=2345&rsv_sug4=3250&rsv_sug=1
协议与主机名
  • https://:表示使用HTTPS协议,确保数据传输的安全性。
  • www.baidu.com:百度的主域名。
路径
  • /s:这是百度搜索服务的路径,意味着这是一个搜索结果页面。
查询字符串(Query String)

查询字符串由一系列键值对组成,每个键值对之间用&分隔,整个查询字符串以?开始。以下是具体参数解析:

  • ie=utf-8:指定输入编码为UTF-8,保证中文字符能够正确显示。
  • f=8:可能是某种内部标识符或功能标记,具体含义未知。
  • rsv_bp=1:可能是指是否启用了某些特殊功能或设置,例如浏览器兼容模式等。
  • tn=baidu:通常表示搜索模板名称,这里是标准的百度搜索。
  • wd=%E8%80%81%E7%95%AA%E8%8C%84:这是搜索关键词,经过URL编码后的“老番茄”。wd是“word”的缩写,代表用户输入的搜索词。
  • oq=%25E7%258E%258B%25E7%2580%259A%25E5%2593%25B2:上一次的搜索查询,同样经过了URL编码,解码后为“王瓜娃”,这可能是之前的搜索历史。
  • rsv_pq=c1e86d7e000fef12:一个随机生成的查询ID,用于唯一标识此次搜索请求。
  • rsv_t=16d0woFpOK5YzfU54LMwvuDPncgZQZfOPBgPgh%2BTzN4qeL20hDD%2BA0kGlVE:另一个随机生成的令牌,可能用于追踪或安全校验。
  • rqlang=cn:指明语言环境为中国大陆地区使用的简体中文。
  • rsv_enter=1:可能表示用户是如何进入搜索页面的,比如通过点击某个链接进入。
  • rsv_dl=tb:可能指代了来源类型,如从贴吧(Tieba)或者其他特定渠道来的流量。
  • rsv_sug3=8rsv_sug1=4rsv_sug7=100rsv_sug2=0:这些参数看起来像是与搜索建议相关的统计信息或者配置项。
  • rsv_btype=t:可能是用来区分不同类型的搜索结果展示形式。
  • inputT=2345:输入时间,即用户花费了多少毫秒来完成这次搜索。
  • rsv_sug4=3250:更多关于搜索建议的信息,具体意义不明确。
  • rsv_sug=1:似乎也是与搜索建议有关的一个标志位。

总结

这个URL是一个典型的百度搜索结果页面链接,其中包含了大量用于优化用户体验、统计分析以及广告投放等方面的查询参数。虽然有些参数的具体作用并不公开透明,但它们共同构成了一个完整的搜索请求,帮助百度更好地理解用户的意图,并提供相关性强的结果。对于普通用户来说,最重要的部分是wd参数所对应的搜索关键词,即“老番茄”,其余参数主要用于内部处理和跟踪。

意思是说我们只要保证最重要的参数wd在,就可以完成一次搜索,我们可以把postman里面的请求改改:
在这里插入图片描述
postman返回了请求,我们也可以把这串url粘贴到我们的浏览器中:
在这里插入图片描述这里使用了https来传输,其他的都是一模一样的。我们想测试一下返回的页面和postman返回的页面是不是一样的,我们可以看百度返回的页面和postman返回的页面是不是包含同样的元素,比如在百度页面的右侧,有一个“逆风笑”的词条:
在这里插入图片描述我们也可以在postman中搜索一下:
在这里插入图片描述在这里插入图片描述说明postman返回的页面应该是正确的,可能是返回了css样式表,导致返回的结果很长。

在这里插入图片描述

urlcode和urldecode

我们看一下wd的关键字那里:wd=%E8%80%81%E7%95%AA%E8%8C%84

我们在百度页面是可以看到汉字的,但是汉字是没有办法传输的,而且直接的明文传输也不安全,所以汉字等特殊字符在传输时要进行urlcode编码

我们可以网上搜个工具,进行urlcode编码:

在这里插入图片描述那么有urlcode编码,也有urldcode解码:
在这里插入图片描述

Params 参数

我们接下来了解一些postman面板上的一些功能参数,首先我们看到Params:
在这里插入图片描述这个主要是在执行get时,查询操作的时候,后面带的一些参数,如果我们还要加的话我们还可以添加:
在这里插入图片描述到时候执行get的时候,这些参数都会一并写到我们的url中。

Authorization

在这里插入图片描述

Authorization 是HTTP请求头中的一个关键字段,用于向服务器提供认证信息。它允许客户端证明自己的身份,从而访问受保护的资源或执行需要授权的操作。Authorization 头通常用于实现各种认证机制,如Basic认证、Bearer Token(OAuth 2.0)、API密钥等。

基本结构

在HTTP请求中,Authorization 头的一般格式如下:

Authorization: <认证方案> <认证参数>
  • 认证方案:指定使用的认证类型,例如 BasicBearer 等。
  • 认证参数:根据所选认证方案提供的具体凭证信息。

常见的认证方案

1. Basic 认证

这是最简单的认证方式之一,适用于HTTP协议。它将用户名和密码组合成一个字符串,然后使用Base64编码后作为认证参数发送给服务器。

  • 格式

     Authorization: Basic <base64-encoded(username:password)>
    
  • 示例
    如果用户名是 user,密码是 pass,那么经过Base64编码后的值为 dXNlcjpwYXNz,因此请求头会是:

    Authorization: Basic dXNlcjpwYXNz
    
  • 注意事项:由于Basic认证仅对凭证进行了简单的编码而非加密,所以必须通过HTTPS来确保传输的安全性。
2. Bearer Token (OAuth 2.0)

Bearer Token是最常用的现代认证方式之一,尤其是在基于OAuth 2.0的系统中。客户端从授权服务器获取令牌,并在每个请求中包含该令牌以证明其身份。

  • 格式

    Authorization: Bearer <access_token>
    
  • 示例

    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
    
  • 优点:相比于Basic认证,Bearer Token提供了更高的安全性,因为它可以包含额外的元数据(如过期时间),并且可以在每次请求时验证令牌的有效性和权限范围。

3. API 密钥

某些服务可能要求使用API密钥进行认证,这通常是通过在请求头中传递一个唯一的密钥字符串来完成的。

  • 格式

    Authorization: ApiKey <your_api_key>
    
  • 示例

    Authorization: ApiKey 12345abcde67890fghij
    
  • 注意:API密钥应该保密处理,并且建议定期更新以增强安全性。

4. 其他认证方案

还有许多其他的认证方法,比如Hawk、AWS Signature Version 4等,它们各自有特定的应用场景和安全特性。

使用场景

  • 保护敏感数据:当API涉及个人隐私或商业机密时,必须确保只有经过授权的用户才能访问。
  • 限制资源访问:对于有限制的API端点,可以通过认证来控制谁能够调用以及他们能做什么操作。
  • 追踪和审计:通过认证信息,可以记录下哪些用户在何时进行了哪些请求,便于后续分析和问题排查。

示例 - 在Postman中添加Authorization头

假设你正在使用Postman测试一个需要Bearer Token认证的API:

  1. 打开Postman并选择你要编辑的请求。

  2. 切换到“Headers”标签页。

  3. 添加一个新的键值对,其中键为 Authorization

  4. 对于Bearer Token认证,值应设置为 Bearer <your_access_token>,例如:

    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
    
  5. 发送请求,服务器将检查提供的令牌是否有效,并根据结果决定是否授予访问权限。

总之,Authorization 请求头是确保API安全性和可控性的关键工具,正确配置它可以大大提升系统的整体安全性。

Headers 请求头

在这里插入图片描述这里隐藏9个选项,我们可以打开看看:
在这里插入图片描述
HTTP headers(HTTP头)是HTTP请求和响应的一部分,用于在客户端和服务器之间传递元数据。这些头部信息提供了关于请求或响应的额外上下文,帮助双方更好地理解和处理传输的数据。HTTP头可以分为几类:通用头、请求头、响应头和实体头。下面是关于HTTP头的详细介绍:

1. 通用头 (General Headers)

这些头字段可以在任何类型的HTTP消息中出现,并且既适用于请求也适用于响应。

  • Cache-Control:指定缓存机制的行为规则,例如是否允许缓存、最大有效期等。
  • Connection:控制连接的状态,如keep-alive保持持久连接,close关闭连接。
  • Date:生成消息的时间戳。
  • Pragma:与缓存相关的指令,主要用于向后兼容HTTP/1.0。
  • Trailer:指示在消息体之后跟随哪些扩展头。
  • Transfer-Encoding:指定传输过程中使用的编码方式,如chunked
  • Upgrade:建议使用更高级别的协议进行通信。
  • Via:记录消息经过的中间节点,常用于代理服务器。
  • Warning:提供有关可能影响消息内容的警告信息。

2. 请求头 (Request Headers)

请求头由客户端发送给服务器,包含有关请求来源、用户偏好、内容类型等信息。

  • Accept:告知服务器客户端可以接受的内容类型(如 text/html, application/json 等)。
  • Accept-Charset:表示客户端支持的字符集。
  • Accept-Encoding:列出客户端支持的内容编码方式(如 gzip, deflate 等),用于压缩传输内容。
  • Accept-Language:显示客户端首选的语言(如 en-US, zh-CN 等)。
  • Authorization:携带认证信息,例如使用Basic Auth或Bearer Token进行身份验证。
  • Cookie:包含之前由服务器设置的cookie,用以维持会话状态或其他持久化信息。
  • Content-Length:指示请求体中的字节数量。
  • Content-Type:当请求体中包含数据时,指明这些数据的MIME类型(如 application/x-www-form-urlencoded, multipart/form-data, application/json 等)。
  • Host:指定请求的目标主机名和端口号。
  • Referer:显示从哪个页面链接到当前请求资源,有助于分析流量来源。
  • User-Agent:描述发起请求的浏览器或其他客户端应用程序的信息。
  • Origin:用于CORS(跨域资源共享)检查,指明请求的来源域名。

示例 - 在Postman中添加Headers

假设你正在使用Postman测试一个API,并需要添加自定义的请求头:

  1. 打开Postman并选择你要编辑的请求。
  2. 切换到“Headers”标签页。
  3. 使用表格形式添加键值对,其中键为头部名称,值为对应的值。

在这里插入图片描述这里注意这里只是演示,get是没有Content-Type,只有post才有。

Body 请求体

在这里插入图片描述

HTTP 请求和响应中的 Body(主体)部分用于携带实际的数据内容。它通常出现在 POST、PUT、PATCH 和 DELETE 等方法中,因为这些方法可能需要向服务器发送数据以创建或更新资源。对于 GET 请求来说,通常不包含请求体,因为数据是通过 URL 的查询字符串传递的。

请求体 (Request Body)

请求体包含了客户端想要发送给服务器的数据。根据不同的应用场景,可以使用多种格式来表示这些数据。以下是几种常见的请求体格式及其用途:

1. application/json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,并且易于机器解析和生成。它是现代Web API中最常用的格式之一。

  • 示例
    {
      "username": "john_doe",
      "email": "john@example.com",
      "password": "securepassword123"
    }
    
2. application/x-www-form-urlencoded

这种格式主要用于HTML表单提交。数据被序列化为键值对,并且每个键值对之间用&分隔,键和值之间用=连接。所有字符都会经过URL编码。

  • 示例
    username=john_doe&email=john%40example.com&password=securepassword123
    
3. multipart/form-data

当上传文件时,或者当表单中有文件输入字段时,应该使用multipart/form-data。它允许在一个请求中同时发送文本和二进制数据。

  • 示例(简化版):
    --boundary
    Content-Disposition: form-data; name="username"
    
    john_doe
    --boundary
    Content-Disposition: form-data; name="avatar"; filename="profile.jpg"
    Content-Type: image/jpeg
    
    [binary data]
    --boundary--
    
4. text/xml 或 application/xml

XML(可扩展标记语言)也是一种常用的数据交换格式,特别是在SOAP Web服务中。

  • 示例
    <user>
      <username>john_doe</username>
      <email>john@example.com</email>
      <password>securepassword123</password>
    </user>
    
5. raw

有时你可能需要直接发送原始文本或自定义格式的数据,这时可以选择“raw”选项并指定适当的MIME类型。

  • 示例(假设发送的是纯文本):
    Hello World!
    

响应体 (Response Body)

响应体则是服务器返回给客户端的数据。它同样可以根据API的设计采用不同的格式,最常见的是JSON和XML。此外,对于下载文件等操作,响应体可能会包含二进制数据。

  • JSON 响应体示例

    {
      "id": 123,
      "username": "john_doe",
      "email": "john@example.com"
    }
    
  • XML 响应体示例

    <user>
      <id>123</id>
      <username>john_doe</username>
      <email>john@example.com</email>
    </user>
    

在Postman中设置请求体

假设你正在使用Postman测试一个API,并需要发送带有请求体的POST请求:

  1. 打开Postman并选择你要编辑的请求。
  2. 在请求构造器中选择合适的HTTP方法(例如POST)。
  3. 切换到“Body”标签页。
  4. 根据你的需求选择合适的数据格式(如raw + JSON, form-data, x-www-form-urlencoded等)。
  5. 输入或构建你要发送的数据。
  6. 发送请求,并查看服务器返回的响应体。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/956426.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

靠右行驶数学建模分析(2014MCM美赛A题)

笔记 题目 要求分析&#xff1a; 比较规则的性能&#xff0c;分为light和heavy两种情况&#xff0c;性能指的是 a.流量与安全 b. 速度限制等分析左侧驾驶分析智能系统 论文 参考论文 两类规则分析 靠右行驶&#xff08;第一条&#xff09;2. 无限制&#xff08;去掉了第一条…

算法日记6.StarryCoding P52:我们都需要0(异或)

一、题目 二、题解&#xff1a; 1、对于这道题&#xff0c;题意为让我们寻找一个数x使得 b[i]a[i]^x&#xff0c; 并且b[1]^b[2]^b[3]^ b[4]^b[5]....0 2、我们把b[i]给拆开&#xff0c;可以得到 3、又因为^满足结合律&#xff0c;因此&#xff0c;可以把括号给拆开 4、接着…

快速入门:如何注册并使用GPT

文章目录 ProtonMail邮箱步骤 1&#xff1a;访问Proton官网步骤 2&#xff1a;创建ProtonMail账户步骤 3&#xff1a;选择注册免费账户步骤 4&#xff1a;填写邮箱地址和手机号&#xff08;可选&#xff09;步骤 5&#xff1a;邮箱验证&#xff08;必须进行验证&#xff09;步骤…

嵌入式硬件篇---PID控制

文章目录 前言第一部分&#xff1a;连续PID1.比例&#xff08;Proportional&#xff0c;P&#xff09;控制2.积分&#xff08;Integral&#xff0c;I&#xff09;控制3.微分&#xff08;Derivative&#xff0c;D&#xff09;控制4.PID的工作原理5..实质6.分析7.各种PID控制器P控…

将IDLE里面python环境pyqt5配置的vscode

首先安装pyqt5全套&#xff1a;pip install pyqt5-tools 打开Vscode&#xff1a; 安装第三方扩展&#xff1a;PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】&#xff0c;便可直接打开UI文件&#xff0c;进行编辑。 配置pyuic,如果下图填写方法使用…

LDD3学习9--数据类型和定时器

这部分对应的是第七章和第十一章&#xff0c;因为内容也不是很多&#xff0c;就一起写了。里面的内容基本上就是一个个的点&#xff0c;所以也就一个个点简单总结一下。 1 数据类型 1.1 数据长度 不同操作系统类型长度可能不一样&#xff0c;看图的话最好用u8&#xff0c;u16&…

python http server运行Angular 单页面路由时重定向,解决404问题

问题 当Angular在本地ng server运行时候&#xff0c;可以顺利访问各级路由。 但是运行ng build后&#xff0c;在dist 路径下的打包好的额index.html 必须要在服务器下运行才能加载。 在服务器下我们第一次访问路由页面时是没有问题的&#xff0c;但是尝试刷新页面或手动输入路…

SparkSQL数据源与数据存储

文章目录 1. 大数据分析流程2. Spark SQL数据源2.1 SparkSQL常见数据源2.2 SparkSQL支持的文本格式2.3 加载外部数据源步骤 3. 本地文件系统加载数据3.1 本地文件系统加载JSON格式数据3.1.1 概述3.1.2 案例演示 3.2 本地文件系统加载CSV格式数据3.2.1 概述3.2.2 案例演示 3.3 本…

LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145188660 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…

AI agent 在 6G 网络应用,无人机群控场景

AI agent 在 6G 网络应用,无人机群控场景 随着 6G 时代的临近,融合人工智能成为关键趋势。借鉴 IT 行业 AI Agent 应用范式,提出 6G AI Agent 技术框架,包含多模型融合、定制化 Agent 和插件式环境交互理念,构建了涵盖四层结构的框架。通过各层协同实现自主环境感知等能力…

信息奥赛一本通 1168:大整数加法

这道题是一道大整数加法&#xff0c;涉及到高精度的算法&#xff0c;比如说有两个数要进行相加&#xff0c;1111111111111111111111111111111111111112222222222222222222222222222222&#xff0c;那么如果这两个数很大的话我们常用的数据类型是不能进行计算的&#xff0c;那么…

基于YOLOv4与Tkinter的口罩识别系统

往期精彩 基于YOLOv11的番茄成熟度实时检测系统设计与实现 用YOLOv11检测美国手语&#xff1a;挥动手腕的科技魔法 基于YOLOv11模型PyQt的实时鸡行为检测系统研究 OpenCV与YOLO在人脸识别中的应用研究(论文源码) 计算机视觉&#xff1a;农作物病虫害检测系统&#xff1a;基于Y…

机器学习:监督学习与非监督学习

监督学习是利用带有标签的数据进行训练,模型通过学习输入和输出之间的关系来进行预测。也就是说,数据集中既有输入特征,也有对应的输出标签,模型的目标是找到从输入到输出的映射关系。 而无监督学习则使用没有标签的数据进行训练,模型的任务是发现数据中的内在结构或模式…

【unity进阶篇】不同Unity版本对应的C# 版本和API 兼容级别(Api Compatibility Level)选择

考虑到每个人基础可能不一样&#xff0c;且并不是所有人都有同时做2D、3D开发的需求&#xff0c;所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】&#xff1a;主要讲解C#的基础语法&#xff0c;包括变量、数据类型、运算符、…

H3CNE-13-静态路由(二)

1.路由优先级 路由类型DirectOSPFStaticRIP管理距离01060100 2.路由度量 配置示例&#xff1a; 配置接口IP、静态路由&#xff08;去包、回包&#xff09; 3.静态路由之路由备份 RTB: ip route-static 192.168.1.0 24 10.0.12.1 ip route-ststic 192.168.1.0 24 20.0.12.1 …

【数据分享】1929-2024年全球站点的逐年平均气温数据(Shp\Excel\无需转发)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01;本次我们为大家带来的就是具体到气象监…

[Qualcomm]Qualcomm MDM9607 SDK代码下载操作说明

登录Qualcomm CreatePoing Qualcomm CreatePointhttps://createpoint.qti.qua

PID控制算法原理,并用python实现演示

PID算法控制运用在哪些地方&#xff1f; PID&#xff1a;比列(Proportion)&#xff0c;积分(Integral)&#xff0c;微分(Differential) PID算法可以用来控制温度&#xff0c;压强&#xff0c;流量&#xff0c;化学成分&#xff0c;速度等等。汽车的定速巡航&#xff1b;伺服驱…

C语言之文本加密程序设计

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 文本加密程序设计 摘要&#xff1a;本文设计了一种文本加密程序&#xff0c;旨在提高信息安…

数字图像处理:实验二

任务一&#xff1a; 将不同像素&#xff08;32、64和256&#xff09;的原图像放大为像素大 小为1024*1024的图像&#xff08;图像自选&#xff09; 要求&#xff1a;1&#xff09;输出一幅图&#xff0c;该图包含六幅子图&#xff0c;第一排是原图&#xff0c;第 二排是对应放大…