Content-Type (در Body) مشخص میکند داده داخل HTTP Request Body با چه ساختاری به سرور ارسال شده است.
Server بر اساس این مقدار تصمیم میگیرد چگونه داده را Parse و پردازش کند.
اگر Content-Type اشتباه باشد → معمولاً باعث Contract Mismatch یا خطای 415 Unsupported Media Type میشود.
فرمت استاندارد و مدرن برای APIهای REST.
ساختار Key-Value
خوانا و سبک
مناسب APIهای مدرن
قابل استفاده در CRUD
{ "name": "Ali", "age": 30 }
Create / Update
REST APIها
Microservices
فرمت قدیمیتر با ساختار Tag-based.
سنگینتر از JSON
دارای تگهای nested
پیچیدهتر در parsing
<customer> <name>Ali</name> <age>30</age> </customer>
Legacy systems
Enterprise integrations
سیستمهای بانکی قدیمی
فرمت ساده key-value در Body.
داده به شکل query-like ارسال میشود
فقط متن (no file)
encode شده
username=ali&password=123
Login forms
Token request
فرمهای ساده
فرمت multipart ساده برای ارسال داده + فایل.
Key-value
قابلیت ارسال فایل
هر part جداگانه ارسال میشود
name: Ali
file: image.jpg
Upload image
Upload document
Forms with file
نسخه کامل و استاندارد برای ارسال چند بخش مختلف.
هر part جداگانه با boundary
پشتیبانی از فایل + داده همزمان
بسیار رایج در upload
--boundary Content-Disposition: form-data; name="file" (binary)
File upload
Complex forms
Multi-part data submission

اگر Content-Type اشتباه باشد:
Server نمیتواند parse کند
معمولاً → 400 / 415
XML → ممکن است XXE attack داشته باشد
form-data → file injection risk
JSON → injection via parsing errors
Missing required fields → 400
Wrong type → 400
Wrong Content-Type → 415
REST → JSON preferred
file upload → multipart/form-data
login → x-www-form-urlencoded یا JSON (modern)
JSON سبکتر از XML
XML parsing سنگینتر
multipart overhead بیشتر دارد
ارسال JSON با Content-Type اشتباه
استفاده از x-www-form-urlencoded برای file upload
استفاده از XML بدون نیاز واقعی
عدم تعریف boundary در multipart
mismatch بین Swagger و request body
در پاسخ کامل باید این کلیدواژهها دیده شوند:
Content-Type, Request Body, JSON, XML, form-data, multipart/form-data, x-www-form-urlencoded, Contract, Parsing, Validation, 415 Unsupported Media Type
Content Types of Body مشخص میکند داده داخل Request Body با چه ساختاری به Server ارسال میشود و چگونه باید parse شود. رایجترین انواع شامل JSON (استاندارد REST)، XML (سیستمهای legacy)، x-www-form-urlencoded (فرمهای ساده)، form-data (ارسال فایل ساده) و multipart/form-data (ارسال فایل و داده پیچیده) هستند. انتخاب Content-Type صحیح برای جلوگیری از Contract Mismatch و خطاهایی مانند 400 Bad Request و 415 Unsupported Media Type ضروری است.
Content-Type Request Body JSON XML form-data multipart/form-data x-www-form-urlencoded Parsing Contract Validation File Upload REST API Legacy Systems 415 Error
JSON (JavaScript Object Notation) (فرمت سبک و استاندارد API): برای انتقال داده در REST APIهای مدرن استفاده میشود.
XML (Extensible Markup Language) (فرمت ساختاری مبتنی بر تگ): در سیستمهای قدیمی و enterprise استفاده میشود.
x-www-form-urlencoded (فرمت ساده key-value در body): برای فرمهای ساده و login استفاده میشود.
form-data (فرمت multipart ساده برای ارسال فایل): برای آپلود فایل و فرمهای همراه با فایل استفاده میشود.
multipart/form-data (فرمت پیشرفته چندبخشی): برای ارسال همزمان فایل و دادههای پیچیده استفاده میشود.
Content-Type یعنی:
👉 “سرور با این داده دقیقاً چطور رفتار کند؟”