🌐 مروری بر HTTP
بدانیم که HTTP پروتکلی برای واکشی (fetching) منابعی مانند اسناد HTML است. این پروتکل، بنیان هرگونه تبادل داده در وب محسوب میشود و یک پروتکل کلاینت-سرور (Client-Server) است. این بدان معناست که درخواستها توسط گیرنده، که معمولاً مرورگر وب است، آغاز میشوند. 🖥 یک سند کامل معمولاً از منابعی مانند محتوای متنی، دستورالعملهای طرحبندی (layout)، تصاویر، ویدئوها، اسکریپتها و موارد دیگر ساخته میشود.
📬 تبادل پیامها (Messages)
کلاینتها (Clients) و سرورها (Servers) از طریق تبادل پیامهای مجزا با یکدیگر ارتباط برقرار میکنند (برخلاف یک جریان داده یا stream).
• پیامهایی که توسط کلاینت ارسال میشوند، درخواست (Requests) نامیده میشوند.
• پیامهایی که توسط سرور به عنوان پاسخ ارسال میشوند، پاسخ (Responses) نام دارند.
⚙️ ماهیت و تکامل HTTP
ماهیت HTTP که در اوایل دهه ۱۹۹۰ طراحی شد، یک پروتکل قابل توسعه (Extensible) است که در طول زمان تکامل یافته است.
این پروتکل یک پروتکل لایه کاربرد (Application Layer Protocol) است که روی TCP یا یک اتصال TCP رمزگذاری شده با TLS ارسال میشود، اگرچه از لحاظ نظری هر پروتکل انتقال قابل اعتماد دیگری میتواند استفاده شود.
به دلیل قابلیت توسعهپذیری، HTTP نه تنها برای واکشی hypertext documents، بلکه برای تصاویر و ویدئوها یا ارسال محتوا به سرورها (مانند نتایج فرمهای HTML) نیز استفاده میشود. همچنین میتوان از HTTP برای واکشی بخشهایی از اسناد استفاده کرد تا صفحات وب را در صورت نیاز بهروزرسانی کند. 🔄
📋 در این مقاله موارد زیر بررسی خواهند شد:
• اجزای سیستمهای مبتنی بر HTTP
• جنبههای اساسی HTTP
• آنچه با HTTP قابل کنترل است
• جریان HTTP (HTTP flow)
• پیامهای HTTP (HTTP Messages)
• و Api های مبتنی بر HTTP