
HTTP چیست؟ مبانی، روش ها، هدرها و امنیت
- HTTP چیست و چرا اهمیت دارد
- مدل درخواست/پاسخ و اجزا
- روش ها (GET, POST, ...)
- کدهای وضعیت رایج
- هدرهای کلیدی و کش
- نسخه ها: 1.1، 2 و 3
- HTTPS و امنیت
- ابزارهای تست و دیباگ
- سوالات متداول
- جمع بندی
HTTP چیست و چرا اهمیت دارد
HTTP مخفف HyperText Transfer Protocol است. این پروتکل، پایه ارتباط وب بین کلاینت و سرور است. مرورگر درخواست می سازد و سرور پاسخ می دهد. سپس HTML، JSON یا فایل ها منتقل می شوند. بنابراین فهم HTTP برای هر توسعه دهنده وب ضروری است.
مدل درخواست/پاسخ و اجزا
هر درخواست شامل روش، مسیر، نسخه و هدرهاست. بدنه اختیاری است. پاسخ شامل نسخه، کد وضعیت، هدرها و بدنه است. علاوه براین، سیاست کش و کنترل نشست در هدرها تعریف می شود. در نتیجه رفتار کاربر و کارایی قابل مدیریت می شود.
نمونه درخواست خام
GET /api/users?page=1 HTTP/1.1
Host: api.example.com
Accept: application/json
User-Agent: UnderDevelops-Client
نمونه پاسخ خام
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: max-age=60
Content-Length: 42
{"items":[{"id":1,"name":"amir"}]}
روش ها (GET, POST, PUT, PATCH, DELETE)
GET برای واکشی داده است و نباید بدنه حساس داشته باشد. POST ایجاد منبع را ساده می کند. PUT جایگزینی کامل انجام می دهد. PATCH تغییر جزئی می دهد. DELETE منبع را حذف می کند. همچنین روش هایی مانند HEAD و OPTIONS برای اکتشاف و بهینه سازی مفید هستند.
کدهای وضعیت رایج
- 200 OK: درخواست موفق بود.
- 201 Created: منبع ساخته شد.
- 204 No Content: بدون بدنه پاسخ.
- 301/302 Redirect: تغییر مسیر.
- 400 Bad Request: ورودی نامعتبر.
- 401/403: احراز یا مجوز ناکافی.
- 404 Not Found: منبع موجود نیست.
- 429 Too Many Requests: نرخ محدودیت.
- 500/502/503: خطاهای سرور یا سرویس.
هدرهای کلیدی و کش
هدرهای Content-Type
و Accept
فرمت را مشخص می کنند. هدرهای کش مانند Cache-Control
، ETag
و Last-Modified
کارایی را بالا می برند. با ETag می توانید اعتبارسنجی شرطی انجام دهید و پهنای باند را کاهش دهید.
نمونه کش شرطی با ETag
GET /posts/1 HTTP/1.1
If-None-Match: "abc123"
نسخه ها: HTTP/1.1، HTTP/2 و HTTP/3
HTTP/1.1 اتصال پایدار و لوله ای سازی محدود دارد. HTTP/2 چندکاناله و فشرده سازی هدر می آورد. HTTP/3 بر پایه QUIC، تاخیر را کاهش می دهد. بنابراین برای کارایی، ترجیح با 2 و 3 است؛ اما سازگاری را هم بررسی کنید.
HTTPS و امنیت در HTTP
HTTPS با TLS رمزنگاری لایه انتقال را فراهم می کند. از HSTS برای اجبار HTTPS استفاده کنید. همچنین هدرهای امنیتی مانند Strict-Transport-Security
، Content-Security-Policy
و X-Content-Type-Options
حملات رایج را محدود می کنند.
نمونه cURL ساده روی HTTPS
curl -s https://underdevelops.com -H "Accept: text/html" -I
ابزارهای تست و دیباگ
از DevTools مرورگر برای Network استفاده کنید. سپس با cURL، HTTPie یا Postman سناریوها را بازتولید کنید. افزون بر این، لاگ سمت سرور و ردیابی درخواست ها دید عمیقی می دهند. برای یادگیری عمیق، مستندات MDN و IETF را بخوانید.
سوالات متداول درباره HTTP
آیا HTTP حالت مند است؟ خیر، HTTP ذاتاً بدون حالت است. اما با کوکی، سشن یا توکن می توانید حالت منطقی بسازید.
REST یعنی چه؟ REST سبک معماری روی HTTP است. منابع با URL شناسایی و با روش ها مدیریت می شوند. محدودیت ها سادگی و مقیاس پذیری می آورند.
جمع بندی و قدم بعدی
اکنون می دانید HTTP چیست و چگونه کار می کند. همین امروز چند درخواست واقعی بفرستید و هدرها را بررسی کنید. سپس به امنیت و کارایی در پروژه های خود توجه کنید. برای ادامه، مطلب زبان HTML چیست را بخوانید و زیرساخت کلاینت را کامل کنید.