標籤:file action esc 上傳 fill container aggregate 控制項 log
Form的enctype屬性工作表示頁面表單資料向服務端傳輸時的編碼方式,常用有兩種:application/x-www-form-urlencoded 和 multipart/form-data,預設為application/x-www-form-urlencoded。
1、application/x-www-form-urlencoded:
表單資料被編碼為成對的名稱和數值,這是標準且預設的編碼格式。當action為get時候,用戶端把form資料轉換成一個字串append到url後面,用?分割。當action為post時候,瀏覽器把form資料封裝到http body中,然後發送到server。
application/x-www-form-urlencoded 傳遞時的資料構造:
......
username=twm&[email protected]
......
2、multipart/form-data:
multipart表示的意思是單個訊息頭包含多個訊息體的解決方案。multipart媒體類型對發送非文本的各媒體類型是有用的。一般多用於檔案上傳。
multipart/form-data只是multipart的一種。目前常用的有以下這些類型(註:任何一種執行時無法識別的multipart子類型都被視為子類型"mixed")
| HTML FORM data (see Ch. 9 and App. B) |
multipart/form-data |
| Messages with multiple parts |
multipart/mixed |
| Messages with multiple, alternative parts |
multipart/alternative |
| Message with multiple, related parts |
multipart/related |
| Multiple parts are digests |
multipart/digest |
| For reporting of email status (admin.) |
multipart/report |
| Order of parts does not matter |
multipart/parallel |
| Macintosh file data |
multipart/appledouble |
| Aggregate messages; descriptor as header |
multipart/header-set |
| Container for voice-mail |
multipart/voice-message |
| Infinite multiparts - See Chapter 9 (Netscape) |
multipart/x-mixed-replace |
當用戶端發起起求時:
要求標頭包含Content-Type:"multipart/form-data; boundary=---------------------------30613490016641",表明form的enctype為multipart/form-data,同時分隔每個控制項field的分割符(boundary)是‘---------------------------30613490016641‘。
請求內容的每個field被分成小部分,而且包含一個value是"form-data"的"Content-Disposition"的頭部;一個"name"屬性對應field的ID。
multipart/form-data 傳遞時的資料構造,見圖:
關於Content-Type中application/x-www-form-urlencoded 和 multipart/form-data的區別及用法