HTTP協議中Content-type和Content-Disposition的區別

Content-type作用

Content-type可以用于請求頭,也可以用于響應頭。首部字段 Content-Type 說明了實體主體內對象的媒體MIMIE類型。
一般是指網頁中存在的 Content-Type,用于定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什么形式、什么編碼讀取這個文件,這就是經常看到一些 PHP 網頁點擊的結果卻是下載一個文件或一張圖片的原因。

常見的媒體格式類型

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 : 需要在表單中進行文件上傳時,就需要使用該格式

像我們在對接第三方接口的時候,會要求我們請求或者響應報文,按照執行的格式傳輸,譬如xml或者json報文。那么我們就需要保證網絡傳輸的過程中,Content-type的值為application/xml或者application/json。

Content-Disposition作用

MIME 協議的擴展。
一般指的是服務器端告知客戶端(瀏覽器),在文件下載的時候,瀏覽器顯示指定的文件名。
譬如HttpServletResponse返回響應報文的時候,設置響應頭

response.setHeader("Content-disposition", "attachment;filename=" +filename);

設置文件名出現亂碼問題

當使用HttpServletResponse設置返回的響應報文中是下載功能,指定顯示文件名,如果不編碼處理會出現亂碼。

解決:

response.setHeader("Content-disposition", "attachment;filename=" +URLEncoder.encode(filename, "utf-8"));

參考

https://www.runoob.com/http/http-content-type.html

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容