最全HTTP中POST请求方法的几种Content-Type(内容类型)介绍(1),2024年最新理论+实战双管齐下

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

HTTP 中的 Content-Type(内容类型),用于定义网络文件的类型和网页的编码方式,让数据接收方决定以什么形式、什么编码读取这个文件。

HTTP/1.1 协议规定的 HTTP 的请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT,其中POST 方法一般用于向服务端提交数据

HTTP 是建立在 TCP/IP 协议之上的应用层协议,HTTP 协议规定传输内容的格式为 ASCII 码。另外,HTTP 协议把 HTTP 请求分为三个部分:状态行请求头(headers)消息主体(body)

请求消息的结构格式样例类如下:

<request-method> <request-URL> <http-version>
<headers>

<body>

HTTP 协议规定 POST 提交的数据必须放在**消息主体(body)**中,但并没有规定这些数据的编码方式,所以,开发者可以根据实际情况选择消息主体的编码方式,只要保证最后发送的 HTTP 请求满足上面的格式即可。

不过,在实际应用中,通过 HTTP 请求发送给服务端的数据,对服务端而言,必须能够成功地解析此请求数据,否则此 HTTP 请求是无意义的。常见的服务端语言(如 Php、Python 等)以及它们的 framework,都内置了自动解析常见数据编码方式的功能。服务端通常是根据**请求头(headers)**中的“Content-Type”字段,先确定 HTTP 请求的消息主体的编码方式,再根据该编码方式对消息主体进行解析。

此处展示一个请求消息示例,内容如下:

POST http://api.gcdev.tfb8.com/cgi-bin/v2.0/api_merchant_agency_info_qry.cgi HTTP/1.1
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
Postman-Token: 78827c4a-9806-41d7-94b4-265fdd9d4c87
User-Agent: PostmanRuntime/7.4.0
Accept: */*
Host: api.gcdev.tfb8.com
accept-encoding: gzip, deflate
content-length: 129
Connection: keep-alive

api_ver=1.0.0&merchant_id=1800000464&busi_type=03&second_busi_type=02&trade_amt=000000000100&trade_time=2018-10-01%2000%3A00%3A00

在上面的 HTTP 请求示例中:

  • HTTP 请求方法(request-method)为:POST
  • HTTP 请求 URL(request-URL)为:http://api.gcdev.tfb8.com/cgi-bin/v2.0/api_merchant_agency_info_qry.cgi
  • HTTP 版本(http-version)为:HTTP/1.1
  • 请求头(headers)信息为:Content-Type…Connection: keep-alive。其中消息主体的编码方式为“application/x-www-form-urlencoded”
  • 请求主体(body)信息为:api_ver=1.0.0…

下面分别介绍几种 POST 请求方法的 Content-Type。

2 POST请求的几种Content-Type

2.1 application/x-www-form-urlencoded

“application/x-www-form-urlencoded”是 POST 请求方法中一种常见的 Content-Type 类型。对于浏览器的原生 表单,如果不设置“enctype”属性,其就会以“application/x-www-form-urlencoded”对消息主体进行编码。

此处展示一个相关的 HTTP 请求示例,内容如下:

POST http://api.gcdev.tfb8.com/cgi-bin/v2.0/api_merchant_agency_info_qry.cgi HTTP/1.1
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
Postman-Token: 78827c4a-9806-41d7-94b4-265fdd9d4c87
User-Agent: PostmanRuntime/7.4.0
Accept: */*
Host: api.gcdev.tfb8.com
accept-encoding: gzip, deflate
content-length: 129
Connection: keep-alive

api_ver=1.0.0&merchant_id=1800000464&busi_type=03&second_busi_type=02&trade_amt=000000000100&trade_time=2018-10-01%2000%3A00%3A00

在上面的请求示例中:

  1. Content-Type 被指定为“application/x-www-form-urlencoded”类型;
  2. 请求提交的消息主体数据按照键值对(key1=value1&key2=value2)方式进行编码,其中 key 和 value 都进行了 URL 转码。

大部分服务端语言都对“application/x-www-form-urlencoded”类型有很好的支持。

2.2 multipart/form-data

“multipart/form-data”是 POST 请求方法中另一种常见的 Content-Type 类型。当我们使用表单上传文件时,必须让 表单的 enctype 属性等于“multipart/form-data”。

此处展示一个相关的 HTTP 请求示例,内容如下:

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

t/topics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值