فهرست مطالب
تست سریع یک اندپوینت در ترمینال گاهی با دستورهای طولانی curl کلافهکننده میشود. نوشتن هدرهای متعدد برای تعیین نوع داده، فرمتبندی دستی بدنه درخواست و خواندن پاسخهای فشرده بدون رنگ، تمرکز توسعهدهنده را میگیرد. ابزار HTTPie با هدف حل همین اصطکاک روزمره طراحی شد تا کار با وبسرویسها در خط فرمان طبیعیتر و سریعتر پیش برود.
ابزار HTTPie چه کاری انجام میدهد
ابزار HTTPie یک کلاینت خط فرمان برای پروتکل HTTP است که تمرکز اصلی آن روی تجربه کاربری، سادگی خواندن خروجی و تعامل بیدردسر با وبسرویسهای مدرن قرار دارد. این پروژه که با زبان پایتون توسعه داده شده است، خروجیهای ساختاریافته را به شکل خودکار قالببندی و رنگآمیزی میکند. علاوه بر آن، ارسال دادههای JSON را به عنوان پیشفرض در نظر میگیرد تا نیازی به نوشتن پرچمهای طولانی و تکراری نباشد.
چه کسانی به این ابزار نیاز دارند
توسعهدهندگان بکاند هنگام ساخت و عیبیابی وبسرویسها، اولین گروهی هستند که از این ابزار بهره میبرند. اگر در حال تست مداوم مسیرهای احراز هویت، دریافت داده یا ارسال فرم هستید، خواندن پاسخهای رنگی و سرراست در همان محیط پایانه، نیاز به باز کردن برنامههای سنگین گرافیکی را برطرف میکند. همچنین مدیران سیستم و متخصصان دواپس که میخواهند سلامت یک سرویس را به سرعت بررسی کنند، بدون درگیر شدن با جزئیات فنی دستورهای پیچیده، وضعیت شبکه را میسنجند. کسانی که مسیر یادگیری پایتون از صفر تا برنامهنویس را طی میکنند نیز میتوانند ساختار ماژولار و افزونههای این ابزار را بررسی کنند.
روش نصب بر اساس مخزن رسمی
ابزار HTTPie از طریق بستهمدیرهای مختلف سیستمعاملها و همچنین مخزن رسمی بسته پایتون در دسترس است. اگر پایتون و پیپ روی رایانه شما فعال است، اجرای فرمان زیر کافی خواهد بود:
bashpip install httpie
در سیستمهای مبتنی بر اوبونتو و دبیان میتوانید از بستهمدیر سیستمی استفاده کنید:
bashsudo apt install httpie
همچنین در سیستمعامل مک با بستهمدیر Homebrew فرمان نصب به این شکل است:
bashbrew install httpie
پس از اتمام فرایند، دستور http در خط فرمان شما فعال میشود.
اجرای اولین فرمان و مشاهده نتیجه
برای ارسال یک درخواست دریافت ساده، فقط نام متد و نشانی اینترنتی را وارد میکنید. متد GET پیشفرض است و حتی میتوانید نام آن را حذف کنید. برای مثال، دریافت اطلاعات از یک سرور نمونه به این شکل نوشته میشود:
bashhttp GET https://api.github.com/repos/httpie/cli
خروجی این دستور برخلاف curl، سرآیندها و بدنه پاسخ را به شکل جداگانه، با دندانهگذاری مناسب و سینتکس هایلایت شده برمیگرداند:
httpHTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Server: GitHub.com
{
"description": "🥧 HTTPie CLI ، modern, user-friendly command-line HTTP client...",
"full_name": "httpie/cli",
"name": "cli",
"stargazers_count": 38560
}
ارسال داده در قالب متد POST نیز به مراتب سادهتر است. به جای نوشتن رشته طولانی JSON داخل گیومه، فیلدها را با علامت مساوی در ادامه دستور قرار میدهید:
bashhttp POST https://httpbin.org/post name=dina code:=100
علامت مساوی ساده مقدار متنی ارسال میکند و ترکیب دو علامت دو نقطه و مساوی مقدار عددی یا بولی در قالب JSON میفرستد.
چه چیزی را نسبت به curl عوض میکند
ابزار curl استانداردی پایدار، سریع و همهجا حاضر است که در اکثر سرورها به شکل پیشفرض وجود دارد. با این حال تفاوتهای عملی مهمی در تجربه کاربری این دو دیده میشود.
نخست، در curl ارسال یک درخواست JSON نیازمند تعریف هدر Content-Type: application/json و قرار دادن بدنه درخواست درون پرچم d- است. در HTTPie فرض اولیه بر تعامل با JSON است؛ بنابراین هم هدر به شکل خودکار تنظیم میشود و هم تبدیل آرگومانها به بدنه صورت میگیرد.
دوم، مدیریت نشستها و احراز هویت است. در HTTPie میتوانید نشستهای کاری ماندگار بسازید تا کوکیها و توکنها در درخواستهای بعدی به صورت خودکار ذخیره و ارسال شوند، بدون اینکه نیاز به ذخیره دستی آنها در فایل متنی داشته باشید.
سوم، خوانایی پاسخها است. برای خواندن خروجی curl معمولاً باید آن را با ابزارهای دیگر لولهکشی کنید تا فرمت درستی پیدا کند، در حالی که HTTPie به صورت درونساخت ترمینال شما را شناسایی کرده و داده را خوانا نمایش میدهد.
محدودیتهای واقعبینانه ابزار
با وجود راحتی کاربری، HTTPie جایگزین کامل curl در همه شرایط نیست. ابزار curl به زبان C نوشته شده است و سرعت بارگذاری و اجرای آن در مقایسه با ابزاری مبتنی بر مفسر پایتون تفاوت محسوسی دارد. در اسکریپتهای توزیعشده لینوکس یا ایمیجهای حداقلی داکر، اتکا به curl بسیار منطقیتر است چون پیشنیاز اضافهای تحمیل نمیکند و در همه جا از پیش نصب است.
همچنین اگر پروژهای نیازمند پروتکلهای قدیمیتر، تنظیمات بسیار جزئی شبکه یا بهینهسازی دقیق در حد میلیثانیه برای ارسال هزاران بسته در حلقه باشد، curl انتخاب استوارتر و مطمئنتری به شمار میرود. برای کارهای روزمره، عیبیابی سریع و تست توسعه، HTTPie سرعت عمل شما را بالا میبرد اما در سطح سرورهای تولیدی، ابزار curl همچنان ابزار پایه خواهد ماند.
سؤالات پرتکرار
HTTPie چیست؟
کلاینت خط فرمان HTTP با تمرکز روی خوانایی خروجی، رنگآمیزی و ارسال آسان JSON؛ جایگزین روزمره بسیاری از دستورهای طولانی curl.
آیا HTTPie جایگزین کامل curl است؟
خیر. برای اسکریپتهای حداقلی، سرورهای تولیدی و محیطهایی بدون پایتون، curl معمولاً انتخاب پایدارتری است.




نظرها
اولین نفری باشید که نظر میدهدسؤالتان را بپرسید یا تجربهتان را بنویسید تا نویسندهی مطلب پاسخ بدهد.