form編碼方式application/x-www-form-urlencoded和multipart/form-data的區別

看風景就發表於2017-08-03

form元素有個enctype屬性,可以指定資料編碼方式,有如下三種:

1. application/x-www-form-urlencoded: 表單資料編碼為鍵值對,&分隔

2. multipart/form-data: 表單資料編碼為一條訊息,每個控制元件對應訊息的一部分

3. text/plain: 表單資料以純文字形式進行編碼

詳細說明:

form的enctype的編碼方式,常用有兩種:

application/x-www-form-urlencoded和multipart/form-data

其中 application/x-www-form-urlencoded為預設編碼方式。

在form的action為get時,瀏覽器用x-www-form-urlencoded的編碼方式,將表單資料編碼為
(name1=value1&name2=value2...),然後把這個字串append到url後面,用?分隔,跳轉
到這個新的url

當form的action為post時,瀏覽器將form資料封裝到http body中,然後傳送到server。

在沒有type=file時候,用預設的 application/x-www-form-urlencoded 就行。

在有 type=file 時候,要用multipart/form-data編碼方式。瀏覽器會把表單以控制元件為單位分割,
並且為每個部分加上Content-Dispositon(form-data或file)、Content-Type(預設text/plain)、
name(控制元件name)等資訊,並加上分割符(boundary)。

相關文章