NO. 0109
فناوری و اینترنت اینترنت و وب

پروتکل HTTP

HTTP — HyperText Transfer Protocol

HTTP پروتکلی است که قواعد گفت‌وگوی مرورگر با سرور وب را تعیین می‌کند: مرورگر درخواست می‌فرستد، سرور پاسخ می‌دهد. تقریباً هر صفحه‌ای که باز می‌کنید، حاصل ده‌ها درخواست و پاسخ بر پایهٔ همین پروتکل است.

درخواست و پاسخ

ساختار HTTP بسیار ساده است: یک طرف می‌پرسد، طرف دیگر جواب می‌دهد. هر درخواست شامل این اجزاست:

  • متد. چه کاری باید انجام شود.
  • مسیر. کدام منبع درخواست شده است.
  • سرآیندها. اطلاعات جانبی مثل نوع مرورگر، زبان مورد نظر و کوکی‌ها.
  • بدنه. داده‌ای که ارسال می‌شود؛ در درخواست‌های ساده خالی است.

پاسخ سرور هم ساختار مشابهی دارد، با این تفاوت که به‌جای متد، یک کد وضعیت دارد که می‌گوید نتیجه چه بوده.

ویژگی مهم: بی‌حالتی

HTTP ذاتاً «بی‌حالت» است؛ یعنی هر درخواست مستقل است و سرور به‌خودی‌خود چیزی از درخواست‌های قبلی شما به یاد ندارد. به همین دلیل کوکی‌ها اختراع شدند: تا سرور بتواند تشخیص دهد این درخواست از همان کاربری است که چند لحظه پیش وارد حسابش شده بود.

متدهای اصلی

متدکاربردداده را تغییر می‌دهد؟
GETدریافت یک منبعخیر
POSTارسال داده و ایجاد منبع تازهبله
PUTجایگزینی کامل یک منبعبله
PATCHتغییر بخشی از یک منبعبله
DELETEحذف منبعبله
HEADگرفتن فقط سرآیندها، بدون محتواخیر

ستون سوم اهمیت عملی دارد: متدهایی که داده را تغییر نمی‌دهند باید امن باشند، یعنی تکرارشان هیچ عارضه‌ای نداشته باشد. به همین دلیل عملیات حذف یا پرداخت هرگز نباید با GET انجام شود — چون مرورگرها و خزنده‌ها ممکن است چنین نشانی‌هایی را خودکار باز کنند.

کدهای وضعیت

کدها در پنج دسته گروه‌بندی می‌شوند و رقم اول معنای کلی را می‌رساند:

  • ۱xx — اطلاعاتی؛ درخواست دریافت شد و در حال پردازش است.
  • ۲xx — موفق. رایج‌ترین: 200 یعنی همه‌چیز درست بود.
  • ۳xx — هدایت. منبع جای دیگری است.
  • ۴xx — خطای سمت کاربر.
  • ۵xx — خطای سمت سرور.

کدهایی که در عمل بیشتر با آن‌ها سروکار دارید:

کدمعنینکته
301انتقال دائمیبرای تغییر نشانی؛ اعتبار سئو منتقل می‌شود
302انتقال موقتاگر تغییر دائمی است، از این استفاده نکنید
404پیدا نشدصفحهٔ ۴۰۴ سفارشی و مفید بسازید
403دسترسی ممنوعمنبع هست اما اجازه ندارید
500خطای داخلی سرورمشکل از برنامه است، نه از کاربر
503سرویس در دسترس نیستمعمولاً موقت؛ بار زیاد یا تعمیرات

تحول نسخه‌ها

پروتکل در طول زمان بازنگری شده تا با رشد پیچیدگی صفحات وب کنار بیاید:

  • نسخهٔ ۱٫۱. سال‌ها استاندارد غالب بود. مشکل اصلی‌اش این بود که درخواست‌ها روی یک اتصال باید به نوبت پردازش می‌شدند و یک درخواست کند، بقیه را متوقف می‌کرد.
  • نسخهٔ ۲. امکان ارسال همزمان چند درخواست روی یک اتصال و فشرده‌سازی سرآیندها را اضافه کرد و سرعت بارگذاری صفحات را محسوس بهبود داد.
  • نسخهٔ ۳. پایهٔ انتقال را عوض کرد تا از دست دادن یک بسته، جریان بقیه را متوقف نکند. این تغییر به‌ویژه روی شبکه‌های موبایل با کیفیت متغیر مؤثر است.

برای مدیران سایت، خبر خوب این است که این ارتقا معمولاً نیازی به تغییر در کد سایت ندارد و در سطح سرور یا شبکهٔ توزیع محتوا فعال می‌شود.

پرسش‌های متداول دربارهٔ پروتکل HTTP

تفاوت HTTP و HTTPS چیست؟

HTTPS همان HTTP است که روی یک لایهٔ رمزنگاری اجرا می‌شود. قواعد گفت‌وگو دقیقاً یکسان است؛ تفاوت در این است که محتوا در مسیر قابل خواندن نیست. امروز استفاده از نسخهٔ رمزنگاری‌نشده برای هر سایتی توصیه نمی‌شود.

چرا گاهی خطای ۴۰۴ می‌بینم؟

یعنی سرور آن مسیر را نمی‌شناسد. دلایل رایج: اشتباه در تایپ نشانی، حذف یا جابه‌جایی صفحه بدون تنظیم هدایت، یا لینک قدیمی در سایت دیگری. اگر مدیر سایت هستید، این خطاها را پایش کنید — هر کدام یعنی کاربری به مقصد نرسیده است.

کوکی چطور با HTTP کار می‌کند؟

سرور در پاسخ خود سرآیندی می‌فرستد که به مرورگر می‌گوید مقداری را ذخیره کند. مرورگر از آن پس، در هر درخواست بعدی به همان دامنه، آن مقدار را برمی‌گرداند. این سازوکار، بی‌حالتی ذاتی پروتکل را جبران می‌کند.