ویرگول
ورودثبت نام
Nastooh
Nastooh
Nastooh
Nastooh
خواندن ۲ دقیقه·۳ روز پیش

Postman - Content Types of Request Body (JSON, XML, form-data, x-www-form-urlencoded, multipart/form-data)

Content Type of Body چیست؟

Content-Type (در Body) مشخص می‌کند داده داخل HTTP Request Body با چه ساختاری به سرور ارسال شده است.
Server بر اساس این مقدار تصمیم می‌گیرد چگونه داده را Parse و پردازش کند.

اگر Content-Type اشتباه باشد → معمولاً باعث Contract Mismatch یا خطای 415 Unsupported Media Type می‌شود.


انواع رایج Body Content Types


raw JSON (application/json)

فرمت استاندارد و مدرن برای APIهای REST.

ویژگی‌ها:

  • ساختار Key-Value

  • خوانا و سبک

  • مناسب APIهای مدرن

  • قابل استفاده در CRUD

مثال:

{ "name": "Ali", "age": 30 }

کاربرد:

  • Create / Update

  • REST APIها

  • Microservices


XML (application/xml)

فرمت قدیمی‌تر با ساختار Tag-based.

ویژگی‌ها:

  • سنگین‌تر از JSON

  • دارای تگ‌های nested

  • پیچیده‌تر در parsing

مثال:

<customer> <name>Ali</name> <age>30</age> </customer>

کاربرد:

  • Legacy systems

  • Enterprise integrations

  • سیستم‌های بانکی قدیمی


x-www-form-urlencoded

فرمت ساده key-value در Body.

ویژگی‌ها:

  • داده به شکل query-like ارسال می‌شود

  • فقط متن (no file)

  • encode شده

مثال:

username=ali&password=123

کاربرد:

  • Login forms

  • Token request

  • فرم‌های ساده


form-data

فرمت multipart ساده برای ارسال داده + فایل.

ویژگی‌ها:

  • Key-value

  • قابلیت ارسال فایل

  • هر part جداگانه ارسال می‌شود

مثال:

  • name: Ali

  • file: image.jpg

کاربرد:

  • Upload image

  • Upload document

  • Forms with file


multipart/form-data

نسخه کامل و استاندارد برای ارسال چند بخش مختلف.

ویژگی‌ها:

  • هر part جداگانه با boundary

  • پشتیبانی از فایل + داده همزمان

  • بسیار رایج در upload

مثال:

--boundary Content-Disposition: form-data; name="file" (binary)

کاربرد:

  • File upload

  • Complex forms

  • Multi-part data submission


تفاوت مهم آزمونی
تفاوت مهم آزمونی


نکات مهم تستی (L7 → L8)

1. Contract Mismatch

اگر Content-Type اشتباه باشد:

  • Server نمی‌تواند parse کند

  • معمولاً → 400 / 415


2. Security Risk

  • XML → ممکن است XXE attack داشته باشد

  • form-data → file injection risk

  • JSON → injection via parsing errors


3. Validation Behavior

  • Missing required fields → 400

  • Wrong type → 400

  • Wrong Content-Type → 415


4. API Design Rule

  • REST → JSON preferred

  • file upload → multipart/form-data

  • login → x-www-form-urlencoded یا JSON (modern)


5. Performance Consideration

  • 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 یعنی:
👉 “سرور با این داده دقیقاً چطور رفتار کند؟”

۰
۰
Nastooh
Nastooh
شاید از این پست‌ها خوشتان بیاید