1. 程式人生 > >#WEB安全基礎 : HTTP協議 | 0x12 MIME多用途郵件擴展以及多部分對象集合

#WEB安全基礎 : HTTP協議 | 0x12 MIME多用途郵件擴展以及多部分對象集合

上傳 -s 修改 text 我們 國內 又是 購物網站 更多

我們是怎麽讓郵件裏又有圖片又有文字的?

文字和圖片是兩個不同的類型,而郵件又是一個類型。

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多用途郵件擴展以及多部分對象集合