分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

#WEB安全基础 : HTTP协议 | 0x12 MIME多用途邮件扩展以及多部分对象集合

发布时间:2023-09-06 02:32责任编辑:赖小花关键词:邮件

我们是怎么让邮件里又有图片又有文字的?

文字和图片是两个不同的类型,而邮件又是一个类型。

C语言的结构体允许用户定义一个含有多类型的自定义类型

像这样,看不懂没关系,你只要知道邮件里有多个类型就可以了

 typedef struct myType = {

  int num;

  char words[20];

};


那么在HTTP传输里有什么机制支持邮件可以使用多种类型呢?

猜对了,就是MIME(多用途邮件扩展)

在MIME中会使用多部分对象集合的方法来容纳不同的数据

相应地,HTTP协议也采用了多部分对象集合,发送的一份报文主体内可以含有多种类型实体。通常是在图片和文本等上传时使用

多部分对象集合包含的对象如下

multipart/form-data  //在web表单文件上传时使用

例:

mutipart/form-data

Content-Type : mutipart/form-data;boundary = AaB03x

CR+LF

-- Aab03x

Content-Disposition : form-data;name = "fieldl" Joe Blow

CR+LF

--Aab03x

Content-Disposition : form-data; name = "pics"; filename = "file1.txt"

Content-Type : text/plain

//(file1.txt的数据) CR+LF

--AaB03


multipart/byteranges  //状态码206(部分内容)响应报文包含了多个范围的内容时使用

multipart/byteranges

HTTP/1.1 206 Paitial Content

Date ; Fri,13 Jul 2012 02:45:26 GMT

Last-Modified:Fri 31 Aug 2007 02:03:20 GMT

Content-Tupe : multipart/byteranges; boundary = THIS_STRIMG_SEPARATES
CR+LF

--THIS_STRING_SEPARATES
Content-Type : application/pdf

Content-Range:bytes 500-999/8000

//范围指定的数据 CR+LF

--THIS_STRING_SEPARATES
Content-Type : application/pdf

Content-Ranges : bytes 7000-7999/8000

//范围指定的数据 CR+LF

--THIS_STRING_SEPARATES


在HTTP上使用多部分对象集合时,需要在首部字段里加上 Content-Type

使用boundary字符串来划分多部分对象集合指明的各类实体。在boundary字符串指定的各个实体的初始行之前插入--标记,而在多部分对象集合对应的字符串的最后插入--标记作为结束

多部分对象集合的每个部分类型中,都可以含有首部字段

另外,可以在某个部分中嵌套使用部分对象集合

有关MIME更多详细,请参考RFC2046


//本系列教程基于《图解HTTP》,此书国内各大购物网站皆可购买


 转载请注明出处  by:M_ZPHr

 最后修改日期:2019-02-04

#WEB安全基础 : HTTP协议 | 0x12 MIME多用途邮件扩展以及多部分对象集合

原文地址:https://www.cnblogs.com/MZPHr/p/10351662.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved