پروتکل HTTP
HTTP — HyperText Transfer ProtocolHTTP پروتکلی است که قواعد گفتوگوی مرورگر با سرور وب را تعیین میکند: مرورگر درخواست میفرستد، سرور پاسخ میدهد. تقریباً هر صفحهای که باز میکنید، حاصل دهها درخواست و پاسخ بر پایهٔ همین پروتکل است.
درخواست و پاسخ
ساختار 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 کار میکند؟
سرور در پاسخ خود سرآیندی میفرستد که به مرورگر میگوید مقداری را ذخیره کند. مرورگر از آن پس، در هر درخواست بعدی به همان دامنه، آن مقدار را برمیگرداند. این سازوکار، بیحالتی ذاتی پروتکل را جبران میکند.
اصطلاحات همخانوادهٔ اینترنت و وب
مشاهدهٔ همه ←- اینترنتاینترنت شبکهای جهانی از شبکههای کوچکتر است که با قواعد ارتباطی مشترک به هم وصل شدهاند. نکتهای که اغلب اشتباه گرفته میشود: اینترنت زیرساخت است و وب فقط یکی از سرویسهایی است که روی آن اجرا میشود.
- وبوب یا شبکهٔ جهانی، سامانهای از اسناد بههمپیوسته است که روی اینترنت اجرا میشود. ایدهٔ بنیادیاش ابرپیوند است: امکان پریدن از هر سند به سند دیگر با یک کلیک، بدون اینکه مهم باشد آن سند روی کدام سرور در کدام کشور است.
- وبسایتوبسایت مجموعهای از صفحات بههمپیوسته است که زیر یک دامنه منتشر میشوند و معمولاً هدف و مالک مشترکی دارند. هر سایت روی سروری میزبانی میشود و از طریق مرورگر با نشانیاش در دسترس است.
- مرورگر وبمرورگر وب نرمافزاری است که فایلهای یک صفحهٔ وب را دریافت میکند، تفسیر میکند و آن را به تصویری که میبینید تبدیل میکند. مرورگر امروز فقط نمایشگر سند نیست؛ عملاً یک سیستمعامل کوچک است که برنامههای کامل را اجرا میکند.
- موتور جستوجوموتور جستوجو سامانهای است که صفحات وب را جمعآوری و فهرستبندی میکند و سپس در پاسخ به عبارت کاربر، مرتبطترین آنها را مرتبشده نمایش میدهد. برخلاف تصور، هنگام جستوجو کل وب گشته نمیشود؛ فقط فهرست از پیش ساختهشدهٔ آن جستوجو میشود.
- URLURL نشانی یکتای یک منبع روی وب است — همان چیزی که در نوار نشانی مرورگر میبینید. هر URL دقیقاً میگوید با چه پروتکلی، به کدام سرور، و برای گرفتن کدام فایل باید مراجعه شود.
برای درک کاملتر، اینها را هم بخوانید
- پروتکل HTTPSHTTPS نسخهٔ امن HTTP است که ارتباط میان مرورگر و سرور را رمزنگاری میکند. همان قفل کوچکی که کنار نشانی سایت میبینید. امروز استاندارد پیشفرض وب است و مرورگرها سایتهای بدون آن را ناامن علامت میزنند.
- اینترنتاینترنت شبکهای جهانی از شبکههای کوچکتر است که با قواعد ارتباطی مشترک به هم وصل شدهاند. نکتهای که اغلب اشتباه گرفته میشود: اینترنت زیرساخت است و وب فقط یکی از سرویسهایی است که روی آن اجرا میشود.
- URLURL نشانی یکتای یک منبع روی وب است — همان چیزی که در نوار نشانی مرورگر میبینید. هر URL دقیقاً میگوید با چه پروتکلی، به کدام سرور، و برای گرفتن کدام فایل باید مراجعه شود.