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

دوره جامع برنامه نویسی وب، پروتکل HTTP، آموزش HTTP، status code در HTTP 1404/7/15
نویسنده: مدرس بهمن آبادی

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

آموزش http

مقدمه

وقتی مرورگر شما یک صفحهٔ وب را باز می‌کند، در پشت‌صحنه یک گفت‌وگو بین مرورگر (کلاینت) و سرور اتفاق می‌افتد.
این گفت‌وگو با زبانی مشخص انجام می‌شود که به آن پروتکل HTTP (HyperText Transfer Protocol) می‌گوییم.
HTTP ستون فقرات دنیای وب است — هر کلیک، هر درخواست و هر تصویر از طریق همین پروتکل منتقل می‌شود.

HTTP چیست؟

HTTP یک پروتکل ارتباطی مبتنی بر متن (Text-Based Protocol) است که وظیفه دارد درخواست‌ها (Requests) را از طرف کلاینت (مثلاً مرورگر) به سرور بفرستد و پاسخ‌ها (Responses) را از سرور دریافت کند.

به بیان ساده‌تر:

مرورگر سؤال می‌پرسد، سرور جواب می‌دهد — با قواعدی که HTTP تعیین کرده است.

ساختار یک درخواست HTTP

هر درخواست HTTP از چند بخش اصلی تشکیل شده است:

اجزای مهم:

  1. Method (متد) – نوع عملیاتی که کلاینت می‌خواهد انجام دهد (مثل GET، POST، PUT، DELETE).

  2. Path – مسیر یا آدرس منبع در سرور (مثلاً /index.html).

  3. Headers – اطلاعات جانبی مثل نوع محتوا، زبان، نوع مرورگر و ...

  4. Body (اختیاری) – در درخواست‌هایی مثل POST، دادهٔ ارسال‌شده در این بخش قرار می‌گیرد.

پاسخ HTTP (HTTP Response)

وقتی سرور درخواست را دریافت کرد، پاسخی می‌فرستد که ساختاری شبیه زیر دارد:

تمامی این موارد با مثالهای عملی و قابل درک در دوره جامع برنامه‌نویسی وب آموزش داده شده استمی توان گفت از 55 ساعت آموزش فقط حدود 5 ساعت آن مرتبط با این موضوع است چرا که بسیار اهمیت دارد

اجزای پاسخ:

  1. Status Code – عددی که وضعیت پاسخ را نشان می‌دهد (مثلاً 200 یعنی موفق، 404 یعنی پیدا نشد).

  2. Headers – توضیحات درباره نوع پاسخ (مثل Content-Type).

  3. 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

نسخهٔ امن 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های حرفه‌ای‌تر و خطایاب‌تر بسازی.