HTTP协议中Content-Type

alova文件上传实战:为什么不需要手动设置Content-Type boundary 本文深入探讨了alova在文件上传中的智能处理机制,特别是如何自动设置Content-Type boundary,避免了传统方式中手动处理的繁琐和错误。通过对比实验和实战案例,展示了alova在上传文件时的高效性和兼容性,帮助开发者提升开发效率。 阅读详情

关于content_type

Content-Type是实体头域(或称为实体头部,entity header)用于向接收方指示实体(entity body)的介质类型的,或称为资源的MIME类型,现在通常称media type更为合适。
在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型。在请求中 (如POST 或 GET),客户端告诉服务器实际发送的数据类型。

content_type语法

Content-Type: text/html; charset=utf-8 
Content-Type: multipart/form-data; boundary=something[1 to 70 characters]

media-type 资源或数据的 media type
charset 字符编码标准
boundary 对于多部分(multipart)实体,boundary 是必需的,它用于封装消息的多个部分的边界。其由1到70个字符组成,浏览器自动生成,该字符集对于通过网关鲁棒性良好,不以空白结尾。下面我们举一个Content-Type 在HTML表单中的例子:

<form action="/" method="post" enctype="multipart/form-data">
  <input type="text" name="description" value="some text">
  <input type="file" name="myFile">
  <button type="submit">Submit</button>
</form>

真实的请求头看起来像这样:

POST /foo HTTP/1.1
Content-Length: 68137
Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575

---------------------------974767299852498929531610575
Content-Disposition: form-data; name="description" 

some text
---------------------------974767299852498929531610575
Content-Disposition: form-data; name="myFile"; filename="foo.txt" 
Content-Type: text/plain 

(content of the uploaded file foo.txt)
---------------------------974767299852498929531610575 #最后一行是结尾boundary

GET常见数据的提交类型

GET方式,是把参数按键值对通过QueryString的方式放在URL尾部,比如: http://www.example.com/test.html?a=1&b=2 ,默认的Content-Type为“application/x-www-form-urlencoded”。

POST常见数据的提交类型

POST方法,通常是把要提交的表单放在一个Form中,指明action后就可以提交数据 。提交数据时需要通过表单enctype属性(规定在发送到服务器之前应该如何对表单数据进行编码)来确定编码类型, 其默认的方式也为”application/x-www-form-urlencoded”。

值描述
application/x-www-form-urlencoded在发送前编码所有字符(默认,空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值)
multipart/form-data不对字符编码,在使用表单上传的文件时,必须使用该值
text/plain纯文本, 空格转换为 “+” 加号,但不对特殊字符编码

application/x-www-form-urlencoded

最常见的 POST 提交数据的方式,原生Form表单,如果不设置 enctype 属性,默认为application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头域已略去):

POST http://www.example.com HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=utf-8

name=test&val1=1&val2=%E6%B5%8B%E8%AF%95&val3%5B%5D=2

首先,Content-Type被指定为 application/x-www-form-urlencoded;其次,提交的表单数据会转换为键值对并按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。大部分服务端语言都对这种方式有很好的支持。一般当我们的key和value中遇到中文和一些特殊字符的时候([ ])就进行URL转码。

multipart/form-data

另一个常见的 POST 数据提交的方式, Form 表单的 enctype 设置为multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符(这就是boundary的作用)分开,类似我们上面Content-Type中的例子。
 由于这种方式将数据有很多部分,它既可以上传键值对,也可以上传文件,甚至多个文件。当上传的字段是文件时,会有Content-Type来说明文件类型;Content-disposition,用来说明字段的一些信息。每部分都是以 –boundary 开始,紧接着是内容描述信息,然后是回车,最后是字段具体内容(字段、文本或二进制等)。如果传输的是文件,还要包含文件名和文件类型信息。消息主体最后以 –boundary– 标示结束。

POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA

------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"

title
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/png

------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

application/json

Content-Type: application/json 作为响应头比较常见。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串,其中一个好处就是JSON 格式支持比键值对复杂得多的结构化数据。 这个Content-Type是对应了postman中raw数据格式。

POST /api/v1/quiz/questionnaire HTTP/1.1
Host: djigo-hk.djiservice.org
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 844ba7ff-9478-3924-d52e-07a79afa9d71

{"lang":"en","product_type":"42","enc_sn":"c40ffc84b2dd0a8db6dbe10a3bf7254b5fd3511a","local":"CN"}

binary (application/octet-stream)

在Chrome浏览器的Postman工具中,还可以看到”binary“这一类型,指的就是一些二进制文件类型。如application/pdf,指定了特定二进制文件的MIME类型。就像对于text文件类型若没有特定的子类型(subtype),就使用 text/plain。类似的,二进制文件没有特定或已知的 subtype,即使用 application/octet-stream,这是应用程序文件的默认值,一般很少直接使用 。

对于application/octet-stream,只能提交二进制,而且只能提交一个二进制,如果提交文件的话,只能提交一个文件,后台接收参数只能有一个,而且只能是流(或者字节数组)。

很多web服务器使用默认的 application/octet-stream 来发送未知类型。出于一些安全原因,对于这些资源浏览器不允许设置一些自定义默认操作,导致用户必须存储到本地以使用。一般来说,设置正确的MIME类型很重要。

转自:https://blog.youkuaiyun.com/zyhmz/article/details/82728560

————————————————
版权声明:本文为优快云博主「zyhmz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/zyhmz/article/details/82728560

全网完美地解决Content type ‘multipart/form-data;boundary=----------0467042;charset=UTF-8‘ not supported)的问题 全网完美解决Content type 'multipart/form-data;boundary=--------------------------036764477110441760467042;charset=UTF-8' not supported 阅读详情

相关推荐

multipart form-data boundary 说明

含义 ENCTYPE="multipart/form-data" 说明: 通过 http 协议上传文件 rfc1867协议概述,jsp 应用举例,客户端发送内容构造1、概述在最初的 http 协议中,没有上传文件方面的功能。 rfc1867(http://www.ietf.org/rfc/rfc1867.txt) 为 http 协议添加了这个功能。客户端的浏

oscar999的专栏 1万+

Content-Type: multipart/form-data; boundary=${bound} 及Postman请求例子

Content-Type/MediaType/Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。 1.multipart/form-data 需要在表单中进行文件上传时,就需要使用该格式。 根据Http/1.1 (RFC 2616)的协议规定,我们的请求方式只有OPTIONS、G...

水逆呱的博客 1万+

HTTP 协议的Content-type都有哪些文件类型

HTTP协议的Content-type都有哪些常见的文件类型,文件后缀

村中少年的专栏 9713

content-type常用参数简介及示例

application/x-www-form-urlencoded 简介: Ajax和JQ的默认值就是"application/x-www-form-urlencoded;charset=utf-8",是一种常见的post提交数据方式。 不属于http content-type规范,通常用于浏览器表单提交. 数据组织格式:key1=1&key2=2&key3=3 ①使用post时数据会放入请求体的body,使用get方式时 ②则会显示在在地址栏(相信大家对这一点深有体会)。 示例 目的

九日的博客 4067

HTTP协议Content-Type请求分析

Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。Content-Type 标头告诉客户端实际返回的内容的内容类型。

拥抱AI Design 718

深入理解 HTTP 协议中的 Content-Type

是 HTTP 协议中的一个头部字段(Header),用于指示请求或响应中实体主体(body)的媒体类型(Media Type),也称为MIME 类型(Multipurpose Internet Mail Extensions)。

h a 6 6 6 c k 为 你解决复杂难题! 997

HTTP协议中的Content-Type

HTTP的MIME

smstong的成长轨迹 4835

全球、中国各省市县等行政区划(含十段线)shape及geosjon数据免费下载

免费下载全球、中国各省市县等行政区划(含十段线)shape及geosjon数据

mhf403445651的博客 3459

HTTP协议之Content-Type

Content-Type是 HTTP 协议中的一个头字段,用于指示请求或响应的主体的媒体类型。

嵌入式开发工程师, 教育品类产品开发 1363

Mit6.S081-实验1-Xv6 and Unix utilities

Mit6.S081-实验1-Xv6 and Unix utilities前言一、Boot xv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在xv6中添加一个自己编写的程序1,源码准备2,编译配置3,测试添加程序4,过程分析三、xv6中shell简析 前言 一、Boot xv6 1,实验目的 利用qemu启动xv6 2,操作流程 1)切换到xv6-labs-2020代码库的lab1分支 git checkout ut

code a better life~ 36万+

【Java】对接微信转账到零钱接口 Java微信商家转账 apiV3(该踩的雷都踩了)

配置apiv3依赖java代码。

Moonhwa的博客 4317

HTTP协议,Content-Type格式介绍篇

在HTTP协议中,Content-Type头字段用于指示请求和响应中的媒体类型(MIME类型)。它告诉客户端和服务器如何解释和处理消息的主体内容。了解Content-Type对于确保数据在网络上传输和处理的正确性至关重要。Content-Type头字段在HTTP协议中扮演着重要的角色,它确保了客户端和服务器能够正确解析和处理数据。了解并正确设置Content-Type,可以提高应用程序的数据传输效率和兼容性。

rit8432499的博客 2074

使用qt+PaddleOCR做一个OCR软件demo

文章目录使用qt+PaddleOCR做一个OCR软件demo效果展示1 建立环境1.1 vs项目环境1.2 qtcreator项目环境1.2.1 源代码整理1.2.2 依赖项整理如下1.2.3 模型文件如下1.2.4 在.pro文件中设置依赖库的模式1.2.5 pro文件中添加.h和.lib2 在工程代码中添加截图功能2.1 新建截图类并连接信号2.2 QImage转cv::Mat3 在工程代码中集成PaddleOCR3.1 初始化PaddleOCR3.2 修改文字识别类的run函数,增加一个返回结果的值的

ShareProgress的博客 9305

HTTP协议中的Content-type

Content-type是HTTP协议中一个头域字段,其表示的含义是传输数据的文件类型,例如文本,图片,视频等格式。对于文本格式,到底是采用GBK编码的文本还是UTF-8编码的文本,都会通过该字段加以说明。用来指导应用层解析器,比如浏览器对于内容的解析显示外汇隔夜利息www.fx61.com/interest.html。Content-Type: text/html; charset=utf-8是大家最常见的HTTP的一个头域形式,表示的是UTF8编码的HTML格式文件。 如下是一个实际传输的HTTP报文头

heima201907的博客 574

51雾化器实现

1. 雾化器简介 雾化器是将试液雾化的一种器械。雾化器是原子化系统的重要部件,其性能对测定的精密度和化学干扰等产生显著影响。因此要求雾化器喷雾稳定、雾滴细小、均匀和雾化效率高。雾化器的类型有超声雾化器,空气压缩式雾化器,网式雾化器。超声雾化器因其价格合适,适合家用,被广泛应用于加湿器,香薰机等各种小家电,也在医疗领域有很多的应用。家用雾化器的主要器件是一枚雾化片。 家用雾化器分为两种不同类别雾化片,实孔雾化片和微孔雾化片,这两种的喷雾方法和工作原理是有所不同的。不同的雾化片需要特定的频率才能工作。 实孔雾

qq_42415953的博客 2万+

5.1 直流无刷电机(BLDC):基本控制概念

本文系统介绍了直流无刷电机(BLDC)控制系统的核心概念与技术。主要内容包括:控制系统的分层结构设计,开环与闭环控制的原理及特点,PWM调速技术及其调制方式,PID控制算法及其数字化实现方法,以及控制系统的性能评估指标。同时探讨了现代BLDC控制器硬件实现方案,并介绍了磁场定向控制(FOC)、直接转矩控制(DTC)等先进控制策略。文章全面阐述了BLDC电机控制从基本原理到前沿技术的知识体系,为相关应用提供了理论指导和技术参考。

技术工作者 490

http 协议之 Content-Type

Content-Type 字段是 http 服务端返回给客户端时,head 里面带上的,这个字段表明服务端返回给客户端的 body 是什么类型的,然后客户端就可以根据这个类型进行文件处理。如浏览器客户端,针对 text/html 类型时,是直接显示或解析成网页进行展示,针对 image/jpg 时,浏览器会展示成图片,针对 audio/mpeg 类型时,就当成音频播放,针对 video/mp4 类型时,就当成视频来播放。此类型即为可读类型,text 文本时,直接显示,html 时,网页显示。......

tianyexing2008的博客 6250

大模型测试人员完整学习体系(分层成长路线 + 知识框架 + 落地实操)

本文系统构建了大模型测试工程师的4级能力成长体系:L1(测试执行)-L2(专项测试)-L3(质量体系)-L4(行业标准),详细拆解了每个阶段的核心技能图谱。重点包括:入门层需掌握传统测试基础和大模型产品逻辑;进阶层需精通Prompt用例设计、RAG测试、安全对齐、自动化评测等专项能力;高级层聚焦评测平台搭建与质量体系建设;专家层深入算法对齐与行业标准制定。文章配套提供了分阶段技术工具栈、3-12个月学习路径及5类实战项目建议,形成了一套完整的大模型测试人才能力培养框架。

SmallBull的博客 456

Web开发必知必会HTTP协议和Content-Type

HTTP协议作为互联网通信的基础,确保了信息的稳定传输;Content-Type定义了数据的类型和格式,使得浏览器能够正确解析和显示数据;Cookie和Session则用于跟踪和管理用户的会话状态;响应状态码则提供了请求处理结果的明确反馈。

weixin_54217348的博客 950

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HTTP协议中的Content-Type及其常见类型

Content-Type是HTTP协议中的一个头部字段,用于指示请求或响应中所传输的实体的媒体类型。

iaoyou1的博客 4149

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Http协议之Content-Type

MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

夫礼者的专栏 2400

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

HTTP协议深度学习+Content-type等

Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件,这就是经常看到一些 PHP 网页点击的结果却是下载一个文件或一张图片的原因。 Content-Type 标头告诉客户端实际返回的内容的内容类型。 语法格式: Content-Type: text/html; charset=utf-8 Content-Type: multipart/form-data; boundary=someth

Java后端技术栈 598

http协议中的Content-Type

今天对http协议中的Content-Type有所理解了   它的主要功给我的感觉,还是在前台(客户端)给服务器传输数据时,描述这个数据的格式。   比如,我只传一个表单数据,但这个表单中只有文本,没有其它的音频、视频、图片、文件,可以用Content-Type描述为:Content-Type=application/x-www-form-urlencoded , 如果表单中含...

weixin_33688840的博客 110
上一篇: OpenResty配置文件下载
下一篇: http报头之通用报头,请求报头,响应报头和实体报头
hp_cpp
博客等级 码龄11年 310粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值