آشنایی کامل با پروتکل HTTP
آشنایی کامل با پروتکل HTTP

مقدمه
وقتی مرورگر شما یک صفحهٔ وب را باز میکند، در پشتصحنه یک گفتوگو بین مرورگر (کلاینت) و سرور اتفاق میافتد.
این گفتوگو با زبانی مشخص انجام میشود که به آن پروتکل HTTP (HyperText Transfer Protocol) میگوییم.
HTTP ستون فقرات دنیای وب است — هر کلیک، هر درخواست و هر تصویر از طریق همین پروتکل منتقل میشود.
HTTP چیست؟
HTTP یک پروتکل ارتباطی مبتنی بر متن (Text-Based Protocol) است که وظیفه دارد درخواستها (Requests) را از طرف کلاینت (مثلاً مرورگر) به سرور بفرستد و پاسخها (Responses) را از سرور دریافت کند.
به بیان سادهتر:
مرورگر سؤال میپرسد، سرور جواب میدهد — با قواعدی که HTTP تعیین کرده است.
ساختار یک درخواست HTTP
هر درخواست HTTP از چند بخش اصلی تشکیل شده است:
اجزای مهم:
Method (متد) – نوع عملیاتی که کلاینت میخواهد انجام دهد (مثل GET، POST، PUT، DELETE).
Path – مسیر یا آدرس منبع در سرور (مثلاً
/index.html).Headers – اطلاعات جانبی مثل نوع محتوا، زبان، نوع مرورگر و ...
Body (اختیاری) – در درخواستهایی مثل POST، دادهٔ ارسالشده در این بخش قرار میگیرد.
پاسخ HTTP (HTTP Response)
وقتی سرور درخواست را دریافت کرد، پاسخی میفرستد که ساختاری شبیه زیر دارد:
تمامی این موارد با مثالهای عملی و قابل درک در دوره جامع برنامهنویسی وب آموزش داده شده استمی توان گفت از 55 ساعت آموزش فقط حدود 5 ساعت آن مرتبط با این موضوع است چرا که بسیار اهمیت دارد
اجزای پاسخ:
Status Code – عددی که وضعیت پاسخ را نشان میدهد (مثلاً 200 یعنی موفق، 404 یعنی پیدا نشد).
Headers – توضیحات درباره نوع پاسخ (مثل
Content-Type).Body – محتوای واقعی پاسخ (مثلاً HTML یا JSON).
متدهای اصلی HTTP
| متد | کاربرد | توضیح کوتاه |
|---|---|---|
| GET | دریافت داده | بدون تغییر در سرور |
| POST | ارسال یا ایجاد داده | ایجاد منبع جدید |
| PUT | بهروزرسانی کامل یک منبع | جایگزین کل داده |
| PATCH | بهروزرسانی جزئی | فقط بخش خاصی تغییر میکند |
| DELETE | حذف منبع | حذف منبع مشخصشده |
وضعیتهای HTTP (Status Codes)
| بازه | دسته | مثال | توضیح |
|---|---|---|---|
| 1xx | اطلاعاتی (Informational) | 100 Continue | درخواست در حال پردازش است |
| 2xx | موفقیت (Success) | 200 OK – 201 Created | درخواست با موفقیت انجام شد |
| 3xx | تغییر مسیر (Redirection) | 301 Moved Permanently | منبع منتقل شده |
| 4xx | خطای کلاینت (Client Error) | 400 Bad Request – 404 Not Found | مشکل در درخواست کاربر |
| 5xx | خطای سرور (Server Error) | 500 Internal Server Error | خطا در سمت سرور |
نسخهٔ امن HTTP، یعنی HTTPS، از پروتکل امنیتی TLS/SSL استفاده میکند تا دادهها رمزگذاری شوند.
در نتیجه:
اطلاعات بین مرورگر و سرور قابل شنود نیست.
هویت سرور قابل تأیید است.
اعتماد کاربر به سایت بیشتر میشود.
بنابراین امروزه تقریباً تمام سایتها از HTTPS استفاده میکنند.
نسخههای مختلف HTTP
| نسخه | ویژگی کلیدی |
|---|---|
| HTTP/1.0 | هر درخواست یک اتصال جداگانه ایجاد میکرد. |
| HTTP/1.1 | اتصال پایدار (Keep-Alive) و Cache بهتر. |
| HTTP/2 | انتقال چندگانه (Multiplexing) و فشردهسازی Headerها. |
| HTTP/3 (جدید) | مبتنی بر پروتکل QUIC؛ سریعتر و امنتر از نسخههای قبلی. |
نکته مفهومی مهم
HTTP خودش وضعیتدار (Stateful) نیست؛ یعنی بین دو درخواست، هیچ دادهای را به خاطر نمیسپارد.
به همین خاطر مفاهیمی مثل Session و Cookie ایجاد شدند تا بتوان حالت کاربر را بین درخواستها حفظ کرد.
جمعبندی
HTTP زبان ارتباط بین مرورگر و سرور است.
اگر این زبان را خوب درک کنی، نهتنها درخواستها و پاسخها را بهتر تحلیل میکنی، بلکه میتوانی APIهای حرفهایتر و خطایابتر بسازی.