文章4:multipart/form-data详细介绍
来源:互联网 发布:常用数据统计的软件是 编辑:程序博客网 时间:2024/06/09 17:57
转载请注明出处 http://blog.csdn.net/yankai0219/article/details/8159701
主要内容
主要内容
1.什么是Multipart/form-data?
2.上传具体的步骤:
3.关于Multipart/form-data的格式
1)概述
2)详细介绍
1.什么是Multipart/form-data?
Multipart/form-data是上传文件的一种方式。
Multipart/form-data其实就是浏览器用表单上传文件的方式。最常见的情境是:在写邮件时,向邮件后添加附件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器。
2.上传具体的步骤:
首先,客户端和服务器建立连接(TCP协议)。
第二,客户端可以向服务器端发送数据。因为上传文件实质上也是向服务器端发送请求。
第三,客户端按照符合“multipart/form-data”的格式向服务器端发送数据。(这一点非常重要)。
3.关于Multipart/form-data的格式
1)概述
其实关于Multipart/form-data的格式有多重不同的表示方法,但是我认为最权威的一种说法如下:
First, there are some basics you need to understand about multipart/formdata posts. Each part consists of at least a NAME and a CONTENTS part. If the part is made for file upload, there are also a stored CONTENT-TYPE and a FILENAME. Below, we'll discuss what options you use to set these properties in the parts you want to add to your post.
首先,你需要理解一些关于multipart/formdata post的一些基础知识。每一个part包含至少一个NAME和一个CONTENT部分。如果这个part用来上传文件,那么也可以有CONTENT-TYPE和FILENAME这些信息。(from http://curl.haxx.se/libcurl/c/curl_formadd.html)
我喜欢通过wireshark来抓包,充分理解其内容。抓包网站:迅载网盘。抓包内容:上传文件时的POST请求。抓包中表示Multipart/form-data的字段:MIME Multipart Media Encapsulation。
2)详细介绍:
首先:介绍wireshark中字段与Multipart/form-data的对应关系:
MIME Multipart Media Encapsulation:代表整个Multipart/form-data上传文件中的数据。
Encapsulated multipart part:代表表单中不同部分的数据。
Boundary:用来隔开表单中不同部分的数据。
其次,详细介绍:
1) MIME Multipart Media Encapsulation ,Type:multipart/form-data,Boundary:“----------ei4Ij5I5Ef1gL6KM7Ef1ch2ae0ei4 ”
这行指出这个请求是multipart/form-data格式的,且boundary是“----------ei4Ij5I5Ef1gL6KM7Ef1ch2ae0ei4”这个字符串。
2)关于Boundary: Boundary:用来隔开表单中不同部分的数据。实际上,每部分数据的开头都是由“--”+boundary开始的(这是MIME标准中讲述的标准内容)。
3) Encapsulated multipart part:紧跟着boundary的是该部分数据的描述:
Content-Dispostion:form-data;name="Filename"\r\n
每一个part至少一个name和一个content部分。
- 文章4:multipart/form-data详细介绍
- ENCTYPE="multipart/form-data"介绍
- 关于multipart/form-data
- multipart/form-data
- multipart/form-data
- multipart/form-data
- Multipart/form-data POST
- apiary multipart/form-data
- multipart/form-data
- multipart/form-data
- enctype="multipart/form-data"
- enctype="multipart/form-data"
- multipart form-data boundary 说明
- ENCTYPE="multipart/form-data"
- multipart form-data boundary 说明
- multipart form-data boundary 说明
- multipart form-data boundary 说明
- multipart form-data boundary 说明
- 学习OpenCV——SVM 手写数字检测
- 如何修复未格式化的坏块?
- 文章3:libcurl基本编程概述
- 学习OpenCV——行人识别&人脸识别
- c++字符串反转
- 文章4:multipart/form-data详细介绍
- 和十期一起装系统
- 串行接口(交叉线和直连线的区别)
- 考进中科院计算所:我的经历和体会
- 学习OpenCV——车牌检测(定位)
- UML学习(一)
- Mshflexgrid控件填写数据时的添加方式的改变,加快数据读取速度.
- vijos 1049 送给圣诞夜的礼品
- android 永远锁屏解决方法