【软件测试】POST请求包含哪些参数

2023-11-12

POST请求包含哪些参数

HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:请求行(状态行,URL)、请求头(Headers)、请求体(消息主体,Body)。

协议规定 POST 提交的数据必须放在请求体(entity-body)中,但协议并没有规定数据必须使用什么编码方式 。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。

数据发送出去,还要服务端解析成功才有意义。一般服务端语言如 php、python 等,以及它们的 framework,都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。

1. application/x-www-form-urlencoded

这应该是最常见的 POST 提交数据的方式了。浏览器的原生 <form> 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。

<form action="form_action.asp" enctype="text/plain">
	<p>First name: <input type="text" name="fname" /></p>
	<p>Last name: <input type="text" name="lname" /></p>
	<input type="submit" value="Submit" />
</form>

此时看到

Content-Type: application/x-www-form-urlencoded;charset=utf-8
title=test&sub%5B%5D=1

首先,Content-Type 被指定为 application/x-www-form-urlencoded;其次,提交的数据按照 key1=val1&key2=val2 的方式进行编码,keyval 都进行了 URL 转码。大部分服务端语言都对这种方式很好的支持,常用的如 jQuery 中的 ajax 请求,Content-Type 默认值都是 application/x-www-form-urlencoded;charset=utf-8

2. multipart/form-data

这也是常见的 post 请求方式,一般用来上传文件,各大服务器的支持也比较好。所以我们使用表单 上传文件 时,必须让 <form> 表单的 enctype 属性值为 multipart/form-data

注意:以上两种方式:application/x-www-form-urlencodedmultipart/form-data 都是浏览器原生支持的。

3. application/json

application/json 作为响应头并不陌生,实际上,现在很多时候也把它作为请求头,用来告诉服务端消息主体是序列化的 JSON 字符串,除了低版本的 IE,基本都支持。除了低版本的 IE 都支持 json.stringify() 的方法,服务端也有处理 JSON 的函数,使用 JSON 不会有任何麻烦。

JSON 格式支持比键值对复杂得多的结构化数据。

4. text/xml

它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。

Postman 请求的 form-datax-www-form-urlencodedrawbinary 的区别?

在这里插入图片描述

form-data

等价于 HTTP 请求中的 multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有 Content-Type 来表名文件类型;content-disposition,用来说明字段的一些信息;

由于有 boundary 隔离,所以 multipart/form-data 既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。

x-www-form-urlencoded

等价于 application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=java&age = 23

raw

可以上传任意格式的文本,可以上传 textjsonxmlhtml 等。

binary

相当于 Content-Type:application/octet-stream。从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。

multipart/form-datax-www-form-urlencoded 的区别

  • multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
  • x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【软件测试】POST请求包含哪些参数 的相关文章

  • AngularJS 1.X 中的异步调用是如何工作的? $Http 调用没有返回值

    我有以下名为的函数getvalue 它与控制器一起位于 AngularJS 模块内 我试图在单击事件上调用此函数 调用控制器中的另一个函数 我希望我很清楚 功能 function getvalue Data http var value u
  • RESt api:根据身份验证对资源和内容进行识别

    我正在设计一个遵循 HATEOAS REST 原则的 API 但我不确定这个基本点 资源识别 假设这个网址 images它公开了用户 向该用户 上传的所有图像 假设我使用 oauth 访问令牌进行身份验证 images 的内容将根据授权标头
  • 如何区分两个同名的多选列表

    对于我正在构建的系统 我需要查看第一个列表中出现了哪些选项 通过 POST 请求 以及第二个列表中出现了哪些选项
  • CURL 相当于使用 VBA 的 POST JSON 数据

    我知道这与之前提出的一些问题类似 但有些东西仍然对我不起作用 如何执行以下命令 curl X POST data statements json H Content Type application json user username p
  • Response.Redirect 并不总是重定向

    我们在一个工作不一致的页面上有一个简单的 Response Redirect IIS 6 0 大多数情况下 它会正确重定向 但我们收到一些用户抱怨 他们没有重定向 而是看到 302 对象移至此处 页面 该页面显示标题信息以及正确的位置 如果
  • 如何解析来自基于 C 的 Web 服务器的 HTTP 请求

    我有一个编程项目 我必须创建一个处理 HTTP 请求的多线程 Web 服务器 我刚刚学习了套接字编程 并且运行了一个客户端和一个服务器 我想知道解析 HTTP 请求标头的最佳方法是什么 我看到了这个 如何用C 解析http请求 https
  • 为什么我在 Firefox 中突然遇到“阻止加载混合活动内容”问题?

    今天早上 在将我的 Firefox 浏览器升级到最新版本 从 22 到 23 后 我的后台 网站 的一些关键功能停止工作 查看Firebug日志 报告了以下错误 Blocked loading mixed active content ht
  • 如何让 HttpClient 返回状态码和响应正文?

    我试图让 Apache HttpClient 触发 HTTP 请求 然后显示 HTTP 响应代码 200 404 500 等 以及 HTTP 响应正文 文本字符串 重要的是要注意我正在使用v4 2 2因为大多数 HttpClient 示例都
  • WordPress 中的 jQuery.post()

    我目前正在为 Wordpress 编写一个聊天框插件 该插件使用 jQuery post 方法将数据发送到 php 文件 以便将输出写入 html 文件 该文件又将使用 jQuery 加载到聊天窗口 在我用来将聊天日志写入html文件的ph
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • 如何使用 python urllib 在 HTTP/1.1 中保持活力

    现在我正在这样做 Python3 urllib url someurl headers HOST somehost Connection keep alive Accept Encoding gzip deflate opener urll
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • HTTP 错误 415 我做错了什么?

    我正在发送 SOAP POST 但收到 HTTPError HTTP 错误 415 不支持的媒体类型 response urllib2 urlopen req data
  • flutter 中 http.post() 时出现 400 BAD 请求

    我创建了heroku web应用程序 它接受district season min temp max temp作为 POST 请求中的 bodyParms 它返回带有单个对象的 JSONcrop URL https agrocare api
  • 使用 android-async-http (loopj) 发布 JSON/XML

    我在用android async http http loopj com android async http 并且真的很喜欢它 我在发布数据时遇到了问题 我必须按照以下格式将数据发布到 API
  • 当响应有正文时,内容长度或传输编码是必需的吗

    如果响应有正文 可以有正文 即状态代码不是 204 或 304 则响应标头中是否应始终具有内容长度或传输编码 在规范中 它不是很清楚 在我的场景中 我的主体没有内容长度或传输编码标头 因此卷曲继续等待no chunk no close no
  • jQuery POST 到 CakePHP $this->data

    我正在尝试使用 jQuery 后置函数将表单发布到 CakePHP 脚本 像这样 jQuery submit btn click function Code to prevent redirect dataString test testd
  • Inno 安装脚本中的 HTTP POST 请求

    我想通过 POST 将 Inno 安装过程中从用户收集的一些信息提交到我们的服务器 明显的解决方案是包含一个 exe 文件 安装程序会将其提取到临时位置并使用参数启动 但是 我想知道 有没有更简单 更好的方法 基于 jsobo 使用建议Wi
  • 志愿者匹配 API Objective C

    我正在使用 AFNetworking 对 VolunteerMatch API 执行 Web 请求 当我执行请求时 我收到 200 代码 但没有收到响应 典型的 VolunteerMatch 请求如下所示 GET api call acti
  • 如何在 Rails 中重定向到 404?

    我想在 Rails 中 伪造 404 页面 在 PHP 中 我只发送一个带有错误代码的标头 如下所示 header HTTP 1 0 404 Not Found Rails 是如何做到这一点的 不要自己渲染 404 没有理由这样做 Rail

随机推荐

  • Python基于PyTorch实现卷积神经网络分类模型(CNN分类算法)项目实战

    说明 这是一个机器学习实战项目 附带数据 代码 文档 视频讲解 如需数据 代码 文档 视频讲解可以直接到文章最后获取 1 项目背景 卷积神经网络 简称为卷积网络 与普通神经网络的区别是它的卷积层内的神经元只覆盖输入特征局部范围的单元 具有稀
  • oracle 9i在线重定义,在oracle 9i下在线重定义表

    9i提供了联机重定义表的方法 可以让你在基本不影响原表的DML情况下修改表结构 实际上 联机重定义表并不是完全的联机重定义 在最后交换表名的时候会短暂地锁定原表和中间表 但这个过程很短暂 相对于传统方法来说 这是一个进步 9i提供了联机重定
  • CNN、BiGRU、BiLSTM代码

    toxicCommentsclassification BiLSTMAttentionNetwork py at master AmritSatpathy toxicCommentsclassification GitHubtoxic co
  • BlueStore 架构及原理分析

    BlueStore 架构及原理分析 Ceph 底层存储引擎经过了数次变迁 目前最常用的是 BlueStore 在 Jewel 版本中引入 用来取代 FileStore 与 FileStore 相比 Bluesore 越过本地文件系统 直接操
  • 算法训练营第四十一天(9.2)

    Leecode 1143 最长公共子序列 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 最长子序列 class Solution public int longestCommonSubsequence str
  • cython代码编译和setup.py文件编写

    Cython 官方文档 https cython readthedocs io en latest 中文文档 https www bookstack cn read cython doc zh https cython apachecn o
  • visjs DataSet支持的数据类型和选择

    数据类型 DataSet 支持以下数据类型 Name Description Examples Boolean A JavaScript Boolean true false Number A JavaScript Number 32 2
  • MFC的ActiveX控件 - 1

    转自 https blog csdn net babykangaroo article details 45795079 本文是入门学习ActiveX的学习笔记 属于系统学习整个框架部分 具体细节自己写代码时再深入 学习参考书籍是 MFC
  • 找环

    文章目录 找环 1 算法分析 1 1 判断是否存在环 1 2 找出所有环上的所有点 1 3 类拓扑排序找出与度数有关的点集 gt 退化到度数为2的环 1 4 找到以s为源点的最小环 1 5 floyd找到有向图 无向图的最小环 2 模板 2
  • 神秘时代服务器信息没汉化,[聊天

    Server thread ERROR Could not load plugins Msgreplace1 0 jar in folder plugins org bukkit plugin InvalidPluginException
  • Qt界面小技巧之设置不同模块不同颜色

    文章目录 一 效果图 二 使用场景 三 使用方法及分析 3 1 步骤 3 2 分析 总结 一 效果图 下图为不同模块不同颜色的效果图 下方每一个字符都是独立的QLabel控件 模块对应的颜色码 1 rgb 170 85 255 2 rgb
  • 日志异常检测初步实践与探索

    1 背景 日志的主要目的是记录系统 包括服务和业务等 状态和重要的事件帮助定位系统的问题 日志对于理解系统状态和定位性能问题至关重要 因此 日志是在线监控和异常检测的一个重要信息源 在很多业务和服务的故障自愈过程中 日志异常检测与根因分析是
  • 人工智能3d建模算法_从2D到3D的跨越,康云全球首创“人工智能AI+3D自动化建模与展示技术”...

    康云 人工智能AI 3D自动化建模与展示技术 第八届中国创新创业大赛 广东赛区 暨第七届 珠江天使杯 科技创新创业大赛 获奖项目巡礼系列报道八 你还在使用传统的3D建模技术 传统3D建模 模型制作成本高耗时耗力 模型体积大不方便传输 传播
  • 【DirectX12】3.配置FBX_SDK

    配置FBX SDK 1 介绍 FBX格式是现在最主流的用于游戏的3D模型格式 要使用DirectX12绘制模型 当然需要先用这个库来解析模型数据 它的版权协议如下 不是开源的并且是非商用的 假设你完成了一个引擎到时候还需要联系他们讨论版权的
  • 巨头的联盟链选择

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓
  • leetcode-每日一题2022.4.16 最大回文数乘积

    题目 力扣 思路 一个n位数的范围在10 n 1 到10 n 1之间 两个n位数的乘积的位数是2n或2n 1位 除了n 1以外 最大回文整数的位数都是2n位 从大到小枚举每一个可能的回文整数 判断它是否能用两个n位数的乘积来表示 回文整数可
  • ESP32开发-HTTP POST请求发送图片

    HTTP POST请求发送图片 ESP32中有HTTP相关的请求demo 但是demo中只是简单的HTTP header加上body 如果服务器对POST请求有要求 比如数据以key value的形式传输 那么服务器会无法正常处理请求 从而
  • 在 Linux 系统中查找 MAC 地址的方法

    参考文章 多种方法在Linux上找到MAC地址 引言 MAC Media Access Control 地址是网络设备 如网卡 的唯一标识符 用于在局域网中进行通信 在 Linux 系统中 有几种方法可以查找设备的 MAC 地址 在本文中
  • 线性代数(六)——二次型

    文章目录 前言 二次型是什么 二次型的表示 合同矩阵与合同二次型 正定二次型 正定矩阵 二次型的题型 前言 一直对二次型和线性代数的关系不解 导致一系列的知识点因为没有理解而常常忘记 在这里对二次型进行梳理 希望可以加深对二次型的印象 二次
  • 【软件测试】POST请求包含哪些参数

    POST请求包含哪些参数 HTTP 协议是以 ASCII 码传输 建立在 TCP IP 协议之上的应用层规范 规范把 HTTP 请求分为三个部分 请求行 状态行 URL 请求头 Headers 请求体 消息主体 Body 协议规定 POST