application/x-www-form-urlencoded和multipart/form-data的區別

來源:互聯網
上載者:User

標籤:sof   ipa   bsp   urlencode   content   ble   資料封裝   Enctype   啟動   

在學習<form>元素時,enctype屬性有三個值

enctype屬性工作表格:

描述
application/x-www-form-urlencoded 在發送前編碼所有字元(預設)
multipart/form-data

不對字元編碼。

在使用包含檔案上傳控制項的表單時,必須使用該值。

text/plain 空格轉換為 "+" 加號,但不對特殊字元編碼。

其中,當值為multipart/form-data時,<input>元素的type屬性必須為file。

type屬性工作表格:

描述
button 定義可點擊按鈕(多數情況下,用於通過 JavaScript 啟動指令碼)。
checkbox 定義複選框。
file 定義輸入欄位和 "瀏覽"按鈕,供檔案上傳。
hidden 定義隱藏的輸入欄位。
image 定義映像形式的提交按鈕。
password 定義密碼欄位。該欄位中的字元被掩碼。
radio 定義選項按鈕。
reset 定義重設按鈕。重設按鈕會清除表單中的所有資料。
submit 定義提交按鈕。提交按鈕會把表單資料發送到伺服器。
text 定義單行的輸入欄位,使用者可在其中輸入文本。預設寬度為 20 個字元。

後來我在學習requests模組時,再次接觸到了application/x-www-form-urlencoded和multipart/form-data,下面說說深入的理解:

enctype表示MIME編碼。

application/x-www-form-urlencoded : 表單資料被編碼為成對的名稱和數值。這是標準的編碼格式。

multipart/form-data : 表單資料被編碼為一條訊息,頁上的每個控制項對應訊息中的一個部分。

text/plain : 表單資料以純文字形式進行編碼,其中不含任何控制項或格式字元。

補充

form的enctype屬性為編碼方式,常用有兩種: application/x-www-form-urlencoded 和 multipart/form-data , 預設為application/x-www-form-urlencoded 。

當action為get時候,瀏覽器用x-www-form-urlencoded的編碼方式把form資料轉換成一個字串(name1=value1&name2=value2...),然後把這個字串append到url後面,用?分割,載入這個新的url。

當action為post時候,瀏覽器把form資料封裝到http body中,然後發送到server。

如果沒有 type=file 的控制項,用預設的 application/x-www-form-urlencoded 就可以了。

但是如果有 type=file 的話,就要用到 multipart/form-data 了。瀏覽器會把整個表單以控制項為單位分割,並為每個部分加上Content-Disposition(form-data或者file)、Content-Type(預設為text/plain)、name(控制項name)等資訊,並加上分割符(boundary)。

 

總結

報文主體會打上標籤,這個標籤就是MIME類型。通過這個標籤,瀏覽器和伺服器就能夠知道資料的類型,進而採用合適的方式來處理該資料。

MIME類型結構

 

application/x-www-form-urlencoded和multipart/form-data的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.