最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HTTP中的Content-type詳解

csdn   發(fā)布時間:2021-12-28 11:00:58   作者:leoss.H   我要評論
這篇文章詳細介紹了HTTP中的Content-type,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧

Content-Type

Content-Type(MediaType),即是Internet Media Type,互聯(lián)網(wǎng)媒體類型,也叫做MIME類型。在互聯(lián)網(wǎng)中有成百上千中不同的數(shù)據(jù)類型,HTTP在傳輸數(shù)據(jù)對象時會為他們打上稱為MIME的數(shù)據(jù)格式標簽,用于區(qū)分數(shù)據(jù)類型。最初MIME是用于電子郵件系統(tǒng)的,后來HTTP也采用了這一方案。

在HTTP協(xié)議消息頭中,使用Content-Type來表示請求和響應(yīng)中的媒體類型信息。它用來告訴服務(wù)端如何處理請求的數(shù)據(jù),以及告訴客戶端(一般是瀏覽器)如何解析響應(yīng)的數(shù)據(jù),比如顯示圖片,解析并展示html等等。

Content-Type的格式:

Content-Type:type/subtype ;parameter

  1. type:主類型,任意的字符串,如text,如果是*號代表所有;
  2. subtype:子類型,任意的字符串,如html,如果是*號代表所有,用“/”與主類型隔開;
  3. parameter:可選參數(shù),如charset,boundary等。

例如:

  1. Content-Type: text/html;
  2. Content-Type: application/json;charset:utf-8;

常見Content-Type

常見的Content-Type有數(shù)百個,下面例舉了一些

  1. HTML文檔標記:text/html;
  2. 普通ASCII文檔標記:text/html;
  3. JPEG圖片標記:image/jpeg;
  4. GIF圖片標記:image/gif;
  5. js文檔標記:application/javascript;
  6. xml文件標記:application/xml;

更多具體內(nèi)容可參考《圖解HTTP》- 附錄D

上面的Content-Type,我們只認得就好,但是下面有4種是需要我們清楚他們的區(qū)別及牢記在心的。

application/x-www-form-urlencoded

HTTP會將請求參數(shù)用key1=val1&key2=val2的方式進行組織,并放到請求實體里面,注意如果是中文或特殊字符如"/"、","、“:" 等會自動進行URL轉(zhuǎn)碼。不支持文件,一般用于表單提交。

下面是一個例子:

  1. 請求參數(shù)

  1. http 請求報文

multipart/form-data

與application/x-www-form-urlencoded不同,這是一個多部分多媒體類型。首先生成了一個 boundary 用于分割不同的字段,在請求實體里每個參數(shù)以------boundary開始,然后是附加信息和參數(shù)名,然后是空行,最后是參數(shù)內(nèi)容。多個參數(shù)將會有多個boundary塊。如果參數(shù)是文件會有特別的文件域。最后以------boundary–為結(jié)束標識。multipart/form-data支持文件上傳的格式,一般需要上傳文件的表單則用該類型。

下面是一個例子:

  1. 請求參數(shù)

  1. http 請求報文

application/json

JSON 是一種輕量級的數(shù)據(jù)格式,以“鍵-值”對的方式組織的數(shù)據(jù)。這個使用這個類型,需要參數(shù)本身就是json格式的數(shù)據(jù),參數(shù)會被直接放到請求實體里,不進行任何處理。服務(wù)端/客戶端會按json格式解析數(shù)據(jù)(約定好的情況下)。

  1. 請求參數(shù)

  1. http 請求報文

application/xml 和 text/xml

與application/json類似,這里用的是xml格式的數(shù)據(jù),text/xml的話,將忽略xml數(shù)據(jù)里的編碼格式,參考。

Content-Type的使用

request 的Content-Type

一般我們在開發(fā)的過程中需要注意客戶端發(fā)送請求(Request)時的Content-Type設(shè)置,特別是使用ajax的時候,如果設(shè)置得不準確,很有可能導(dǎo)致請求失敗。比如在spring中,如果接口使用了@RequestBody,spring強大的自動解析功能,會將請求實體的內(nèi)容自動轉(zhuǎn)換為Bean,但前提是請求的Content-Type必須設(shè)置為application/json,否正就會返回415錯誤。

注:415 錯誤是 Unsupported media type,即不支持的媒體類型。

建議:

  1. 如果是一個restful接口(json格式),一般將Content-Type設(shè)置為application/json; charset=UTF-8;
  2. 如果是文件上傳,一般Content-Type設(shè)置為multipart/form-data
  3. 如果普通表單提交,一般Content-Type設(shè)置為application/x-www-form-urlencoded

response的Content-Type

服務(wù)端響應(yīng)(Response)的Content-Type最好也保持準確,雖然一般web開發(fā)中,前端解析響應(yīng)的數(shù)據(jù)不會根據(jù)Content-Type,并且服務(wù)端一般能自動設(shè)置準確的Content-Type,但是如果亂設(shè)置某些情況下可能會有問題,比如導(dǎo)出文件,打開圖片等。如果在spring項目里使用@ResponseBody,spring會將響應(yīng)的Content-Type設(shè)置為application/json;charset=UTF-8;,可能會導(dǎo)致文件無法導(dǎo)出,需要注意下。

response的Content-Type設(shè)置建議:

  1. 一般情況下不需要顯示設(shè)置;
  2. 如果是文件導(dǎo)出,Content-Type 設(shè)置為 multipart/form-data,并且添加一個Content-Disposition設(shè)置為attachment;fileName=文件.后綴。

注:Content-Disposition是Content-Type的擴展,告訴瀏覽器彈窗下載框,而不是直接在瀏覽器里展示文件。因為一般瀏覽器對于它能夠處理的文件類型,如txt,pdf 等,它都是直接打開展示,而不是彈窗下載框。

下面的一個設(shè)置response的Content-Type的例子:

  1. 未準確設(shè)置response的Content-type的情況,客戶端將json數(shù)據(jù)當成普通文本

content-type →text/html;charset=UTF-8

  1. 準確設(shè)置response的Content-type的情況,客戶端將json數(shù)據(jù)自動解析

content-type →application/json;charset=UTF-8

參考

《HTTP 權(quán)威指南》

什么是json

常見的Content-Type

application/xml 和 text/xml的區(qū)別

postman里的Content-Type

以上所述是小編給大家介紹的HTTP中的Content-type詳解,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • HTML img標簽和超鏈接標簽詳細介紹

    文章介紹了HTML中img標簽的使用,包括src屬性(指定圖片路徑)、相對/絕對路徑區(qū)別、alt替代文本、title提示、寬高控制及邊框設(shè)置等,本文主要給大家介紹HTML img標簽和超鏈
    2025-06-20
  • HTML中meta標簽的常見使用案例(示例詳解)

    HTML meta標簽用于提供文檔元數(shù)據(jù),涵蓋字符編碼、SEO優(yōu)化、社交媒體集成、移動設(shè)備適配、瀏覽器控制及安全隱私設(shè)置,優(yōu)化頁面顯示與搜索引擎索引,本文給大家介紹HTML中meta
    2025-06-20
  • HTML input 標簽示例詳解

    input 標簽主要用于接收用戶的輸入,隨 type 屬性值的不同,變換其具體功能,本文通過實例圖文并茂的形式給大家介紹HTML input 標簽,感興趣的朋友一起看看吧
    2025-06-20
  • html 滾動條滾動過快會留下邊框線的解決方案

    這篇文章主要介紹了html 滾動條滾動過快會留下邊框線的解決方案,解決方法很簡單,可以將 dialog 單獨拿出來別放在 transform 的子元素里,需要的朋友可以參考下
    2025-06-09
  • 在 HTML 文件中添加圖片的常用方法

    本文將介紹如何使用<img>標簽在 HTML 中添加圖片,并展示一些常見的用法和技巧,通過本文的介紹,應(yīng)該掌握了在 HTML 中添加和調(diào)整圖片的基礎(chǔ)知識,感興趣的朋友一起看
    2025-05-16
  • HTML 表格詳解(簡單易懂較詳細)

    HTML表格用于在網(wǎng)頁上展示數(shù)據(jù),通過標簽及其相關(guān)標簽來創(chuàng)建,表格由行和列組成,每一行包含一個或多個單元格,單元格可以包含文本、圖像、鏈接等元素,本文將詳細介紹HTML表格
    2025-03-12
  • 禁止HTML頁面滾動的操作方法

    本文介紹了三種禁止HTML頁面滾動的方法:通過CSS的overflow屬性、使用JavaScript的滾動事件監(jiān)聽器以及使用CSS的position:fixed屬性,每種方法都有其適用場景和優(yōu)缺點,感興
    2025-02-24
  • 使用HTML和CSS實現(xiàn)文字鏤空效果的代碼示例

    在 Web 開發(fā)中,文本的視覺效果是提升用戶體驗的重要因素之一,通過 CSS 技巧,我們可以創(chuàng)造出許多獨特的效果,例如文字鏤空效果,本文將帶你一步一步實現(xiàn)一個簡單的文字鏤空
    2024-11-17
  • Html去除a標簽的默認樣式的操作代碼

    在Html中,a標簽?zāi)J的超鏈接樣式是藍色字體配下劃線,這可能不滿足所有設(shè)計需求,如需去除這些默認樣式,可以通過CSS來實現(xiàn),本文給大家介紹Html去除a標簽的默認樣式的操作代碼
    2024-09-25
  • HTML文本域如何設(shè)置為禁止用戶手動拖動

    在HTML中,可以通過設(shè)置CSS的resize屬性為none,來禁止用戶手動拖動文本域(textarea)的大小,這種方法簡單有效,適用于大多數(shù)現(xiàn)代瀏覽器,但需要在老舊瀏覽器中進行測試以確保
    2024-09-25

最新評論

通道| 池州市| 老河口市| 双辽市| 邹城市| 锦屏县| 新竹市| 任丘市| 中宁县| 灵武市| 青海省| 南宫市| 镶黄旗| 元江| 西林县| 广丰县| 牙克石市| 宜兰县| 华容县| 镶黄旗| 建水县| 遂平县| 铁岭市| 江川县| 津市市| 平乡县| 鹤壁市| 镇沅| 保康县| 大名县| 宜章县| 和田县| 太和县| 洛南县| 渝中区| 黑河市| 凤冈县| 芦溪县| 类乌齐县| 江阴市| 远安县|