جب curl کا ٹیسٹ HTTP اسٹیٹس کے لیے 000 دکھاتا ہے تو اسے رپورٹ کرنے کے لیے کوئی حتمی HTTP رسپانس کوڈ نہیں ملا ہوتا۔ ویب سائٹ نے 000 نام کا کوئی حقیقی HTTP اسٹیٹس نہیں بھیجا۔

خرابی بھی محفوظ کریں

POSIX شیل کی یہ مثال حتمی HTTP خانہ، CONNECT خانہ اور curl پراسیس کا ایگزٹ کوڈ دکھاتی ہے:

curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect}\n' https://example.com/
result=$?
printf 'curl_exit=%s\n' "$result"

مثال کے اینڈپوائنٹ کی جگہ اپنا HTTP پراکسی یا HTTP پراکسی فہرست سے کوئی امیدوار رکھیں۔ show-error فعال رکھیں؛ خرابی کا پیغام اکثر سب سے مفید حصہ ہوتا ہے۔ CONNECT خانہ ٹنل استعمال ہونے پر متعلق ہوتا ہے؛ یہ ویب سائٹ کا دوسرا حتمی اسٹیٹس نہیں۔

قدروں کو ایک ساتھ پڑھیں

  • پراکسی سے کنکشن ناکام ہونے پر HTTP خانہ 000 رہ سکتا ہے۔
  • جواب ملنے سے پہلے انتظار کی مہلت ختم ہونے سے بھی یہی نتیجہ آ سکتا ہے۔
  • کامیاب CONNECT جواب کے بعد TLS کی ناکامی ہو تو connect=200 اور http=000 دکھائی دے سکتا ہے۔
  • ویب سائٹ کا مکمل جواب، مثلاً 403، مختلف صورت ہے: جانچنے کے لیے حقیقی HTTP جواب موجود ہے۔

درست ایگزٹ کوڈ اور پیغام وجہ کا دائرہ محدود کرتے ہیں۔ دیکھیں ناکامی پراکسی تلاش کرتے وقت، اس کے پورٹ سے جڑتے وقت، ٹنل طے کرتے وقت یا منزل کی تصدیق کرتے وقت ہوئی۔

ہر نتیجے کو صرف اسٹیٹس چیک تک محدود نہ کریں

صرف http_code محفوظ کرنے والا اسکرپٹ ٹرانسپورٹ کی خرابی ضائع کر دیتا ہے۔ پراسیس کا نتیجہ اور حساس معلومات سے پاک خرابی کا پیغام بھی محفوظ کریں۔ اس کے برعکس، مناسب fail آپشن استعمال نہ ہو تو ویب سائٹ کے خرابی والا اسٹیٹس لوٹانے کے باوجود curl منتقلی کامیابی سے مکمل کر سکتا ہے۔ HTTP جواب اور کلائنٹ کے چلنے کا نتیجہ مختلف سوالوں کے جواب دیتے ہیں۔

TLS تصدیق بند کر کے یا کوئی بے ترتیب ہیڈر شامل کر کے 000 درست کرنے کی کوشش نہ کریں۔ پہلے معلوم کریں کون سا عمل حتمی جواب تک نہیں پہنچا۔

متعلقہ مضامین