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 সারানোর চেষ্টা করবেন না। আগে বুঝুন কোন কাজটি চূড়ান্ত রেসপন্স পর্যন্ত পৌঁছায়নি।

সম্পর্কিত নিবন্ধ