簡介
Http Header里的Content-Type一般有這三種:
application/x-www-form-urlencoded:數據被編碼為名稱/值對。這是標准的編碼格式。
multipart/form-data: 數據被編碼為一條消息,頁上的每個控件對應消息中的一個部分。(流的方式,一般上傳)
text/plain: 數據以純文本形式(text/json/xml/html)進行編碼,其中不含任何控件或格式字符。
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...),然后把這個字串追加到url后面,用?分割,加載這個新的url。
當action為pos時候,
瀏覽器把form數據封裝到http body中,然后發送到server。 如果沒有type=file的控件,用默認的application/x-www-form-urlencoded就可以了。
但是如果有type=file`的話,就要用到multipart/form-data了。
當action為post且Content-Type類型是multipart/form-data
,瀏覽器會把整個表單以控件為單位分割,並為每個部分加上Content-Disposition(form-data或者file),Content-Type(默認為text/plain),name(控件name
)等信息,並加上分割符(boundary)。
Http請求中Content-Type講解以及在Spring MVC中的應用
1. Content-Type
MediaType,即是Internet Media Type,互聯網媒體類型;也叫做MIME類型,在Http協議消息頭中,使用Content-Type來表示具體請求中的媒體類型信息。
類型格式:type/subtype(;parameter)? type
主類型,任意的字符串,如text,如果是*號代表所有;
subtype 子類型,任意的字符串,如html,如果是*號代表所有;
parameter 可選,一些參數,如Accept請求頭的q參數, Content-Type的 charset參數。
例如: Content-Type: text/html;charset:utf-8;
常見的媒體格式類型如下:
- text/html : HTML格式
- text/plain :純文本格式
- text/xml : XML格式
- image/gif :gif圖片格式
- image/jpeg :jpg圖片格式
- image/png:png圖片格式
以application開頭的媒體格式類型:
- application/xhtml+xml :XHTML格式
- application/xml : XML數據格式
- application/atom+xml :Atom XML聚合格式
- application/json : JSON數據格式
- application/pdf :pdf格式
- application/msword : Word文檔格式
- application/octet-stream : 二進制流數據(如常見的文件下載)
- application/x-www-form-urlencoded : <form encType=””>中默認的encType,form表單數據被編碼為key/value格式發送到服務器(表單默認的提交數據的格式)
另外一種常見的媒體格式是上傳文件之時使用的:
- multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式
以上就是我們在日常的開發中,經常會用到的若干content-type的內容格式。