تبدیل curl به HTTP

curl2code دستورات curl را به فرمت درخواست خام HTTP تبدیل می‌کند. این تبدیل برای حفظ حریم خصوصی کامل، در مرورگر شما از طریق WebAssembly انجام می‌شود. برای فرمت HAR، مبدل curl به HAR ما را بررسی کنید. برای HTTPie، curl به HTTPie را ببینید. در ادامه مثال‌های کاربردی درخواست HTTP آورده شده است.

نحوه کپی کردن curl از مرورگر

  1. 1

    باز کردن DevTools

    کلید F12 یا Ctrl+Shift+I را فشار دهید تا ابزارهای توسعه‌دهنده مرورگر باز شوند.

  2. 2

    رفتن به تب Network

    روی تب Network کلیک کنید و عملیاتی که باعث ارسال درخواست HTTP می‌شود را انجام دهید.

  3. 3

    کپی به عنوان cURL

    روی درخواست راست‌کلیک کنید ← CopyCopy as cURL. سپس آن را در بالا جایگذاری کنید.

سوالات متداول

فرمت HTTP خام چیست؟

فرمت HTTP خام متن واقعی پروتکل را که روی شبکه ارسال می‌شود نشان می‌دهد: خط درخواست (GET /path HTTP/1.1)، هدرها و بدنه. این نمایش استاندارد تعریف شده در RFC 9110 است. curl2code فرمت درخواست HTTP خام را تولید می‌کند که برای درک دقیق آنچه یک دستور curl در سطح پروتکل انجام می‌دهد مفید است.

HTTP خام در مقابل HAR در مقابل HTTPie — کدام فرمت را انتخاب کنیم؟

HTTP خام نمایش دقیق پروتکل را نشان می‌دهد — برای یادگیری و مستندسازی بهترین است. HAR دارای ساختار JSON برای ابزارها است. HTTPie یک سینتکس CLI کاربرپسند است. برای درک پروتکل از HTTP خام، برای تحلیل از HAR و برای اسکریپت‌ها از HTTPie استفاده کنید. همچنین curl به HAR و curl به HTTPie را ببینید.

احراز هویت در HTTP خام چگونه به نظر می‌رسد؟

احراز هویت به صورت یک خط هدر ظاهر می‌شود: Authorization: Bearer token123 یا Authorization: Basic dXNlcjpwYXNz. در HTTP خام، شما هدر دقیقی را که ارسال می‌شود می‌بینید — که تایید پیکربندی صحیح احراز هویت را آسان می‌کند. curl2code درخواست کامل شامل هدرهای احراز هویت را نشان می‌دهد.

داده‌های فرم در HTTP خام چگونه به نظر می‌رسند؟

داده‌های فرم multipart مرز (boundary) را نشان می‌دهند، که هر بخش هدرهای Content-Disposition و Content-Type خود را دارد و با رشته‌های boundary جدا شده‌اند. هدر Content-Type شامل multipart/form-data; boundary=... است. HTTP خام ساختار دقیقی را که کتابخانه‌ها انتزاع می‌کنند، آشکار می‌کند.

خطاهای HTTP چگونه نمایش داده می‌شوند؟

خط وضعیت پاسخ کد را نشان می‌دهد: HTTP/1.1 404 Not Found یا HTTP/1.1 500 Internal Server Error. هدرهای پاسخ ممکن است شامل Retry-After برای محدودیت نرخ یا WWW-Authenticate برای چالش‌های احراز هویت باشند. درک HTTP خام به دیباگ کردن مشکلات در هر زبان برنامه‌نویسی کمک می‌کند.

تفاوت‌های بین نسخه‌های HTTP چیست؟

HTTP/1.1 از هدرهای متنی و یک درخواست در هر اتصال (با keep-alive) استفاده می‌کند. HTTP/2 درخواست‌ها را روی یک اتصال باینری واحد مالتی‌پلکس می‌کند. HTTP/3 از QUIC (مبتنی بر UDP) برای برقراری سریع‌تر اتصال استفاده می‌کند. curl از هر سه نسخه با فلگ‌های --http2 و --http3 پشتیبانی می‌کند.

کدهای وضعیت رایج HTTP چه معنایی دارند؟

200 OK، 201 Created، 204 No Content — موفقیت. 301/302 ریدایرکت‌ها. 400 Bad Request، 401 Unauthorized، 403 Forbidden، 404 Not Found — خطاهای کلاینت. 500 Internal Server Error، 502 Bad Gateway، 503 Service Unavailable — خطاهای سرور. 429 Too Many Requests — محدودیت نرخ.

چگونه از HTTP خام برای دیباگ کردن استفاده کنیم؟

خروجی HTTP خام از curl2code را با ترافیک واقعی شبکه مقایسه کنید (از curl -v برای خروجی پرجزئیات استفاده کنید). بررسی کنید که هدرها، Content-Type، انکودینگ بدنه و Content-Length با انتظارات مطابقت داشته باشند. ابزارهایی مانند mitmproxy، Wireshark و Fiddler پروتکل HTTP خام را برای هر کلاینتی نشان می‌دهند. برای دیباگ CLI، curl به HTTPie را ببینید.

چگونه یک درخواست POST با بدنه JSON را در Raw HTTP نمایش دهیم؟

از -X POST -d '{"key":"value"}' -H "Content-Type: application/json" در دستور curl استفاده کنید و curl2code آن را به فرمت Raw HTTP تبدیل می‌کند: POST /api/data HTTP/1.1 Content-Type: application/json {'key':'value'}. بدنه JSON و هدر Content-Type در خروجی حفظ می‌شوند. curl2code هم JSON داخلی و هم ارجاعات @file.json را مدیریت می‌کند.

چگونه احراز هویت با Bearer token را در Raw HTTP بگنجانیم؟

وقتی دستور curl -H "Authorization: Bearer YOUR_TOKEN" URL را با curl2code تبدیل می‌کنید، Bearer token در خروجی Raw HTTP حفظ می‌شود: Authorization: Bearer YOUR_TOKEN. هر دو فلگ -H "Authorization: Bearer ..." و توکن OAuth به طور خودکار تشخیص داده می‌شوند.

Content-Type در فرمت Raw HTTP چگونه نمایش داده می‌شود؟

هنگام تبدیل curl -H "Content-Type: application/json" URL، curl2code هدر Content-Type را در Raw HTTP به این صورت خروجی می‌دهد: Content-Type: application/json. انواع رایج شامل application/json، application/x-www-form-urlencoded و multipart/form-data هستند. curl2code هدر Content-Type دقیق را از دستور curl اصلی حفظ می‌کند.

لینک‌های مفید

راهنماهای curl

تبدیل curl به زبان‌های دیگر