CURL হল একটি কমান্ড-লাইন টুল এবং libcurl নামক একটি লাইব্রেরি, যা SSL সমর্থন, প্রক্সি টানেলিং, হেডার কনফিগারেশন এবং কুকি ব্যবস্থাপনার মতো বৈশিষ্ট্যগুলি নিয়ে গর্ব করে৷ লিনাক্স, ম্যাকওএস এবং উইন্ডোজে সিআরএল প্রাক-ইনস্টল করা আছে, এটি কমান্ড লাইনে ওয়েব অনুরোধের জন্য গো-টু টুল তৈরি করে।
আপনার কীবোর্ড ধরে রাখুন, ওয়েব ডেভেলপার! যদি আপনার টুলকিটে কার্এল বৈশিষ্ট্য না থাকে, তাহলে আপনি গেমের সবচেয়ে শক্তিশালী টুলগুলির একটি মিস করতে পারেন। cURL শুধুমাত্র একটি CLI-ভিত্তিক HTTP ক্লায়েন্ট নয়—এটি কমান্ড-লাইন HTTP ক্লায়েন্ট!
CURL-এর হৃদয়ে একটি যাত্রায় আমাদের সাথে যোগ দিন, যেখানে আমরা এর রহস্য উন্মোচন করব, এর ক্ষমতাগুলি অন্বেষণ করব এবং এটিকে একজন পেশাদারের মতো ব্যবহার করার জন্য আপনাকে জ্ঞান দিয়ে সজ্জিত করব৷ CURL এর প্রকৃত শক্তি প্রকাশ করতে প্রস্তুত? এর রোল করা যাক!
CURL কি?
, সংক্ষেপে "URL এর জন্য ক্লায়েন্ট", একটি সফ্টওয়্যার প্রকল্প যা একটি কমান্ড-লাইন টুল এবং libcurl নামক একটি লাইব্রেরি অন্তর্ভুক্ত করে। এই জুটি নেটওয়ার্ক প্রোটোকলের একটি বর্ণালী জুড়ে URL সিনট্যাক্স সহ ডেটা স্থানান্তরে বিশেষজ্ঞ। libcurl এছাড়াও SSL সমর্থন, প্রক্সি টানেলিং, হেডার কনফিগারেশন, এবং কুকি ব্যবস্থাপনার মতো বৈশিষ্ট্যগুলি নিয়ে গর্ব করে।
libcurl দ্বারা সমর্থিত প্রোটোকলগুলির সম্পূর্ণ তালিকায় প্রবেশ করা একটি ডিজিটাল বর্ণমালা স্যুপ নেভিগেট করার মতো মনে হয়। এতে HTTP, HTTPS, FTP, SFTP, IMAP, POP3, SMTP, MQTT এবং আরও কয়েক ডজন অন্তর্ভুক্ত রয়েছে। তালিকাটি এত দীর্ঘ যে আপনি হয়তো তাদের মধ্যে কারো কারো নাম শুনেননি—নিশ্চিত থাকুন, যদি এমন হয় তবে আপনি একা নন! 😜
কেন CURL বিকাশকারীদের মধ্যে রক স্টার স্ট্যাটাস অর্জন করেছে? এটা তার ক্রস-প্ল্যাটফর্ম দক্ষতা সম্পর্কে সব! অনেকগুলি প্রোগ্রামিং ভাষায় উপলব্ধ libcurl বাইন্ডিং-এর সাথে PHP, Python, এবং Java- মনে করুন- CURL নির্বিঘ্নে বিভিন্ন প্রযুক্তির স্ট্যাকের সাথে একীভূত হয়। জনপ্রিয়তা এর সর্বব্যাপীতার মধ্যে রয়েছে। লিনাক্স, ম্যাকওএস এবং উইন্ডোজে সিআরএল আগে থেকে ইনস্টল করা আছে, এটিকে সরাসরি বাক্সের বাইরে যেকোনো মেশিনে টার্মিনালে ওয়েব অনুরোধের জন্য গো-টু টুল তৈরি করে।
ওয়েব কন্টেন্ট পুনরুদ্ধার করা, API পরীক্ষা করা বা ফাইল আপলোড করা যাই হোক না কেন, যেকোন ওয়েব ডেভেলপারের টুলকিটে CURL একটি অপরিহার্য টুল হিসাবে লম্বা। এর অতুলনীয় নমনীয়তা এবং দক্ষতার সাথে কিছুই মিলতে পারে না। 🚀
কর্মে cURL: সিনট্যাক্স এবং উদাহরণ
সুতরাং, আপনি আপনার টুলকিটে কার্ল পেয়েছেন, কিন্তু কিভাবে এটি ব্যবহার করবেন? সরল ! এই সিনট্যাক্স অনুসরণ করে আপনার টার্মিনালে একটি কমান্ড চালু করুন:
curl [options] [URL]
URL হল গন্তব্য—আপনি যে অনলাইন সার্ভার বা সংস্থানকে লক্ষ্য করছেন, সেখানে কিছু সাধারণ CURL বিকল্পগুলি হল:
-X বা --request : ব্যবহার করার জন্য HTTP পদ্ধতি সেট করতে।
-d বা --data : আপনার অনুরোধের মূল অংশে ডেটা যোগ করতে।
-b বা --cookie : আপনার অনুরোধের জন্য কুকি পরিচালনা করতে।
-H বা --header : আপনার অনুরোধে একটি কাস্টম হেডার যোগ করতে। একাধিক শিরোনামের জন্য, বিকল্পগুলি বহুবার পুনরাবৃত্তি করুন। ডিফল্টরূপে GET ।
-v বা --verbose : ডিবাগিংয়ের জন্য বিস্তারিত তথ্য প্রিন্ট করতে।
উপলব্ধ সমস্ত বিকল্প খুঁজে বের করতে, 🔎
⚠️ দ্রষ্টব্য 1 : সাবধান, কমান্ড-লাইন curl বিকল্পগুলি সংবেদনশীল। সুতরাং, -x এবং -X দুটি ভিন্ন অর্থ রয়েছে।
⚠️ দ্রষ্টব্য 2 : পাওয়ারশেলে, curl হল Invoke-Request একটি উপনাম। উইন্ডোজে cURL ব্যবহার করতে, curl এর পরিবর্তে curl.exe লিখুন।
এখন, দ্বারা শ্রেণীবদ্ধ বাস্তব-বিশ্বের উদাহরণগুলিতে কর্মে কার্ল সিনট্যাক্স দেখতে প্রস্তুত হন!
পাওয়া
একটি টার্গেট ওয়েব পৃষ্ঠার উৎস HTML পেতে কিভাবে cURL ব্যবহার করবেন তা এখানে:
curl "//example.com/"
হুডের অধীনে, cURL একটি GET অনুরোধ করবে, //example.com/ ওয়েব পৃষ্ঠার সাথে যুক্ত HTML নথি আনবে এবং টার্মিনালে এটি মুদ্রণ করবে।
আপনি একটি একক কমান্ড দিয়ে তথ্য পুনরুদ্ধার করেছেন। ইম্প্রেসিং, তাই না? 🔥
পোস্ট
নীচের cURL POST উদাহরণটি একটি নতুন ব্যবহারকারী তৈরি করতে প্রয়োজনীয় JSON ডেটা সহ //api.example.com/users এন্ডপয়েন্টকে কল করে:
পছন্দসই HTTP পদ্ধতি নির্দিষ্ট করতে -X বিকল্পটি লক্ষ্য করুন। -H বিকল্পের ব্যবহারের দিকেও মনোযোগ দিন, যা Content-Type হেডার সেট করে এবং -d বিকল্পটি একটি স্ট্রিং-এ কাঁচা JSON ডেটা নির্দিষ্ট করে। একটি ডেডিকেটেড দেখুন!
PUT
cURL PUT কলগুলি নিম্নলিখিত সিনট্যাক্স মেনে চলে:
curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "//api.example.com/projects/12"
HTTP অনুরোধ প্রদত্ত ডেটা ব্যবহার করে আইডি 12 দিয়ে প্রকল্প আপডেট করবে। এই উদাহরণে, অনুরোধের বডিতে থাকা ডেটাটি application/x-www-form-urlencoded ফরম্যাটে রয়েছে, উপরের CURL POST কলে ব্যবহৃত JSON বডির বিপরীতে। ডেটা ফরম্যাটে এই নমনীয়তা বিভিন্ন ব্যবহারের ক্ষেত্রে সিআরএল-এর অভিযোজনযোগ্যতা দেখায়।
প্যাচ
একটি অনলাইন রিসোর্সের একটি একক ক্ষেত্র আপডেট করার জন্য CURL এ একটি PUT অনুরোধ করতে চান? আপনি কিভাবে এটি করতে পারেন তা এখানে:
cURL আপনাকে DELETE অনুরোধ করতে এবং বিদ্যমান সত্তার অস্তিত্ব মুছে ফেলার অনুমতি দেয়, নীচের মত:
curl -X DELETE //api.example.com/user/431
এই API কলের পর, ID 431 সহ ব্যবহারকারী আর থাকবে না!
উন্নত কার্ল বিকল্প
cURL অনেকগুলি বিকল্প অফার করে, প্রতিটি জটিল ব্যবহারের ক্ষেত্রে একটি অনন্য ক্ষমতা প্রদান করে। আপনি সেই মহাবিশ্বের মধ্য দিয়ে নেভিগেট করার সাথে সাথে কিছু উন্নত বিকল্পগুলি আলাদা হয়ে যায়। এখানে শীর্ষ 10টি সবচেয়ে দরকারী উন্নত কার্এল বিকল্প রয়েছে:
-o বা --output : এর পরিবর্তে নির্দিষ্ট স্থানীয় ফাইলে আউটপুট লিখতে।
-O বা --remote-name : একটি দূরবর্তী ফাইলে আউটপুট সংরক্ষণ করতে।
-i বা --include : আউটপুটে প্রতিক্রিয়া HTTP হেডার অন্তর্ভুক্ত করতে।
-u বা --user : user:password ফরম্যাটে ইউজারনেম এবং পাসওয়ার্ড দিয়ে প্রমাণীকরণ করতে।
-L বা --location : সার্ভার যখন 3XX দিয়ে সাড়া দেয় তখন রিডাইরেক্ট অনুসরণ করতে।
-e বা --referer : HTTP সার্ভারে "রেফারার পৃষ্ঠা" তথ্য পাঠাতে।
-x বা --proxy : অনুরোধ করার জন্য প্রক্সি সার্ভারের URL উল্লেখ করতে। আরও তথ্যের জন্য, সম্পর্কে আমাদের টিউটোরিয়াল পড়ুন বা নীচের ভিডিওটি দেখুন।
--rate : সর্বোচ্চ ট্রান্সফার ফ্রিকোয়েন্সি নির্দিষ্ট করতে আপনি রেট-সীমিত করার ব্যবস্থা ট্রিগার এড়াতে cURL করতে চান।
--data-binary : কোনো অতিরিক্ত প্রক্রিয়াকরণ ছাড়াই নির্দিষ্টভাবে সার্ভারে ডেটা পাঠাতে।
--compressed : একটি সংকুচিত প্রতিক্রিয়া অনুরোধ করতে এবং স্বয়ংক্রিয়ভাবে প্রতিক্রিয়া বিষয়বস্তু ডিকম্প্রেস করুন।
এই বিকল্পগুলি আয়ত্ত করা আপনাকে ওয়েব ইন্টারঅ্যাকশনের সর্বদা বিকশিত অঞ্চলে অতুলনীয় সূক্ষ্মতার সাথে কার্ল পরিচালনা করার ক্ষমতা দেয়। 🌐
কিভাবে সিআরএল থেকে সর্বাধিক সুবিধা পাবেন
cURL হল ওয়েব রিকোয়েস্টের জন্য একটি পাওয়ার হাউস, কিন্তু এর ডিফল্ট সেটআপ এটিকে অ্যান্টি-বট ব্যবস্থার জন্য দুর্বল করে দেয়। উদাহরণস্বরূপ, এটির ডিফল্ট User-Agent শিরোনাম বিবেচনা করুন:
curl/XYZ
কিভাবে দেখুন.
এখন, সর্বশেষ Chrome এর ব্যবহারকারী এজেন্টের সাথে এটি তুলনা করুন:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
যে একটি বেশ ভিন্ন স্ট্রিং!
হেডারকে ওভাররাইড না করেই সিআরএল ব্যবহার করা টার্গেট সার্ভারের কাছে চিৎকার করার মতোই, “আমার দিকে তাকান! আমি একটি স্বয়ংক্রিয়, নন-ব্রাউজার, রোবট অনুরোধ!"
আশ্চর্যের কিছু নেই, এটি প্রতিরক্ষামূলক প্রক্রিয়া ট্রিগার করতে পারে 😅। এছাড়াও, ভুলে যাবেন না যে cURL শুধুমাত্র একটি HTTP ক্লায়েন্ট। সুতরাং, এটি রেন্ডারিং বা ডেটা পুনরুদ্ধারের জন্য জাভাস্ক্রিপ্টের উপর নির্ভরশীল পৃষ্ঠাগুলির সাথে মোকাবিলা করতে পারে না।
👎আপনি যদি ব্যবহার করতে চান তাহলে এটা খারাপ!👎
তাহলে কি আপনার কার্ল ব্যবহার বন্ধ করা উচিত? একদমই না! আপনি শুধু সঠিক সরঞ্জাম দিয়ে এটি সজ্জিত করা প্রয়োজন! CURL এর পূর্ণ সম্ভাবনা আনলক করতে এবং এর সীমাবদ্ধতাগুলিকে মোকাবেলা করতে, হয় এটি একটি এর সাথে সংহত করুন:
ওয়েব প্রক্সি : প্রতিটি অনুরোধে একটি নতুন, ভূ-স্থানীয়, বিশ্বস্ত আইপি পেতে; বা ক
ওয়েব আনলকিং টুল : পাবলিক স্ট্যাটিক্স বা জাভাস্ক্রিপ্ট-নির্ভর ওয়েব পৃষ্ঠাগুলি অ্যাক্সেস করতে এবং বট সনাক্তকরণ প্রযুক্তিগুলিকে বাইপাস করে।
আপনার সিদ্ধান্ত যাই হোক না কেন, উজ্জ্বল ডেটা আপনাকে কভার করেছে! মধ্যে একটির সাথে, Bight Data-এর লক্ষ লক্ষ প্রক্সি সার্ভার সারা বিশ্বে ছড়িয়ে আছে। এছাড়াও, এর সমাধান আপনাকে বট সুরক্ষার স্তর নির্বিশেষে, CURL এর মাধ্যমে যেকোনো পাবলিক ওয়েবসাইট অ্যাক্সেস করতে সক্ষম করে।
উপসংহার
এইচটিটিপি ক্লায়েন্টদের রক স্টার, cURL হল ডেভেলপারদের টার্মিনালে ওয়েব রিকোয়েস্ট করার জন্য গো-টু টুল। এখানে, আপনি এখন সাধারণ HTTP পদ্ধতির সাথে এর ব্যবহার আয়ত্ত করেছেন এবং এর বিভিন্ন বিকল্পগুলি অন্বেষণ করেছেন। এটি একটি শক্তিশালী টুল, কিন্তু আসুন বাস্তব হই—বেশিরভাগ সাইট সনাক্ত করতে সক্ষম হবে যে আপনি তাদের সাথে CURL এর মাধ্যমে যোগাযোগ করছেন।
ভয় নেই! প্রতিষেধকটি সহজ: একটি ওয়েব প্রক্সির সাহায্য তালিকাভুক্ত করুন বা, সর্বোত্তম ফলাফলের জন্য, থেকে ওয়েব আনলকার সমাধানটি গ্রহণ করুন৷ ইন্টারনেটকে গণতান্ত্রিক করার জন্য আমাদের মিশনে আমাদের সাথে যোগ দিন, এটিকে সকলের কাছে, সর্বত্র অ্যাক্সেসযোগ্য করে-এমনকি শক্তিশালী কার্ল-এর মাধ্যমেও!
পরবর্তী সময় পর্যন্ত, স্বাধীনতার সাথে ওয়েব অন্বেষণ চালিয়ে যান!