回答

1

Content-Type在HTTP請求的頭部指定給服務器它應該期望的數據。如果一個服務器允許並接受多種類型的內容,它可以使用這個字段知道如何解釋請求的主體。

例如:如果服務器在同一端點允許XML和JSON數據,然後設置Content-Type爲:

內容類型:應用/ JSON

先給服務器知道它應該期望請求主體包含JSON。而經過:

內容類型:文本/ XML

將通知服務器期望在體內XML。

RFC7321 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content限定Content-Type在部分3.1.1.5

的「內容類型」報頭字段表示 相關聯表示的媒體類型:或者封閉在 消息有效載荷或所選擇的表示,作爲表示由 消息語義確定。所指示的媒體類型定義了數據格式以及在由內容編碼指示的任何內容編碼被解碼之後如何在收到消息語義的範圍內由接收者, 處理該數據。

有1500+ Media types與可以被設置爲Content-Type該請求的IANA登記。

3.1.1.5節的最後一段說明如果沒有設置Content-Type,服務器可能會假定數據爲application/octet-stream或以任何想要的方式解釋請求。但是:

客戶那些 如此冒險繪製不正確的結論,這可能會暴露出更多的 安全風險(例如,「特權升級」)。

它被稱爲Content Sniffing服務器做到這一點,可以通過將被禁用時:

X-Content-Type的選項:nosniff

+0

兄弟IANA代表什麼? –

+0

感謝您解釋有關此主題 –

+0

如果我們未設置任何內容類型,那麼會出現什麼問題 –

1

如果您沒有設置內容 - 做輸入您的應用程序可能無法

例如,如果你正在構建以JSON格式要求數據的應用程序,你在你的頭的Content-Type不包括:應用程序/ JSON,在大多數情況下喲你的應用程序將無法正常工作。

相關問題