Headers بخشی از HTTP Request / Response هستند که اطلاعات کنترلی (Metadata) درباره ارتباط بین Client و Server را منتقل میکنند.
Headers داده اصلی نیستند، بلکه نحوه پردازش، امنیت، فرمت و رفتار API را کنترل میکنند.
مشخص میکند داده داخل Request Body چه فرمی دارد.
مثال:
Content-Type: application/json
تعیین فرمت داده ارسالی
کنترل parsing در Server
جلوگیری از mismatch در contract
application/json
application/xml
multipart/form-data
x-www-form-urlencoded
مشخص میکند Client چه نوع Response Format را انتظار دارد.
مثال:
Accept: application/json
تعیین نوع خروجی API
negotiation بین Client و Server
کنترل نسخه response format
برای احراز هویت (Authentication) و سطح دسترسی (Authorization) استفاده میشود.
مثال:
Authorization: Bearer eyJhbGciOi...
کنترل دسترسی به API
جلوگیری از دسترسی غیرمجاز
ارسال Token (JWT / OAuth2)
Bearer Token
Basic Auth
API Key (گاهی در header)
Headerهای سفارشی که توسط سیستم یا بیزینس تعریف میشوند.
مثال:
X-Correlation-Id: 12345 X-Client-Version: 2.1 X-Request-Source: mobile
Tracking درخواستها (Traceability)
Debugging
Logging
Feature Flag
Analytics
Idempotency-Key (در سیستمهای مالی)
Headerنقش اصلیContent-Typeفرمت Request BodyAcceptفرمت ResponseAuthorizationامنیت و دسترسیCustom Headersکنترلهای بیزینسی و سیستمی
اگر Content-Type اشتباه باشد → معمولاً 415 Unsupported Media Type
اگر Accept پشتیبانی نشود → ممکن است 406 Not Acceptable
نبود Authorization → باید 401 Unauthorized
Token نامعتبر → 403 Forbidden
Custom Headers اگر validate نشوند میتوانند:
باعث bypass شوند
اطلاعات حساس leak کنند
behavior سیستم را تغییر دهند
Accept و Content-Type باید با هم سازگار باشند
mismatch → contract failure
Custom headers مثل:
Idempotency-Key
برای جلوگیری از duplicate transaction استفاده میشوند.
Missing Content-Type
Unsupported Media Type (415)
Invalid Accept header (406)
Missing Authorization (401)
Invalid Token (403)
Custom header not validated
Contract mismatch between request/response format
در پاسخ کامل باید این کلیدواژهها وجود داشته باشد:
Headers, Metadata, Content-Type, Accept, Authorization, Custom Headers, Authentication, Authorization, Content Negotiation, Contract, Token, Bearer, Security
HTTP Headers اطلاعات متادیتا در درخواست و پاسخ هستند که رفتار API را کنترل میکنند. Content-Type فرمت داده ارسالی در Request Body را مشخص میکند، در حالی که Accept فرمت Response مورد انتظار را تعیین میکند. Authorization برای احراز هویت و کنترل دسترسی استفاده میشود. همچنین Custom Headers برای نیازهای بیزینسی مانند tracing، logging و کنترلهای خاص سیستم استفاده میشوند. عدم تطابق در Headers میتواند باعث Contract Mismatch و خطاهایی مانند 401, 403, 415, 406 شود.
HTTP Headers Content-Type Accept Authorization Bearer Token Authentication Authorization Custom Headers Metadata Content Negotiation Contract Token Validation API Security Request Validation Response Format
Content-Type (تعیین فرمت داده ارسالی در Request Body): برای مشخص کردن نوع داده مثل JSON یا XML استفاده میشود.
Accept (تعیین فرمت Response مورد انتظار): برای negotiation بین Client و Server استفاده میشود.
Authorization (ارسال اطلاعات احراز هویت): برای کنترل دسترسی و امنیت API استفاده میشود.
Custom Headers (Headerهای سفارشی): برای tracking، logging و نیازهای خاص سیستم استفاده میشوند.
Content Negotiation (تطبیق فرمت Request و Response): فرآیند توافق بین Client و Server برای نوع داده.
Bearer Token (نوعی از توکن احراز هویت): معمولترین روش ارسال JWT در Authorization header.
Contract (توافق بین Client و Server): تعیین میکند Headers و Body باید چه ساختاری داشته باشند.
Headers = کنترل + امنیت + فرمت + رفتار
نه داده اصلی، بلکه “قوانین بازی API”