URL পার্সিং কীভাবে কাজ করে
পার্সারটি WHATWG URL মানদণ্ডে চলে, যেই একই অ্যালগরিদম ব্রাউজার যেকোনো href-এর জন্য ব্যবহার করে। আমরা স্ট্রিংটি নেটিভ URL কনস্ট্রাক্টরে পাঠাই এবং প্রতিটি উপাদান একটি প্রপার্টি হিসেবে ফিরে পড়ি।
- ইনপুট যাচাই করুন. একটি খালি স্ট্রিং একটি খালি-ইনপুট নোটিস দেখায়। অন্যথায় আমরা টেক্সটটি
new URL(text)-এ পাঠাই; একটি TypeError মানে স্ট্রিংটি একটি বৈধ পরম URL নয়। - স্ট্রাকচারাল উপাদান পড়ুন. আমরা URL অবজেক্ট থেকে
protocol,username,password,host,hostname,port,pathname,search,hashএবংoriginপড়ি। প্রতিটি নিজস্ব সারিতে যায় যাতে আপনি এটি আলাদাভাবে কপি করতে পারেন। - কোয়েরি স্ট্রিং হাঁটুন. আমরা
url.searchParams.entries()ইটারেট করি এবং প্রতিটি কীর জন্য একটি টেবিল সারি রেন্ডার করি। কাঁচা মানdecodeURIComponent(value)-এর পাশে থাকে যাতে পার্সেন্ট-এনকোডেড পেলোড (স্পেস, প্লাস চিহ্ন, Unicode) সরল বাংলায় পাঠ্য হয়। - চাহিদা অনুযায়ী পুনর্নির্মাণ করুন. যেকোনো সেল সম্পাদনা করুন, একটি সারি মুছুন বা একটি নতুন প্যারামিটার যোগ করুন, তারপর Build URL ক্লিক করুন। টুলটি আপনার সম্পাদনা থেকে একটি নতুন URL অবজেক্ট পুনর্নির্মাণ করে এবং ফলাফল ইনপুট বাক্সে লেখে।
- লাইভ মোড. লাইভ মোড টগল করুন এবং প্রতিটি কীস্ট্রোক ১৫০ ms ডিবাউন্সে URL পুনরায় পার্স করে। লগ থেকে টুকরো পেস্ট করার সময় তাৎক্ষণিক প্রতিক্রিয়া চাইলে উপকারী।
কেন ব্রাউজারে URL পার্স করবেন
- কিছুই ট্যাব ছেড়ে যায় না. URL টোকেন, সেশন ID, OAuth স্টেট এবং সাইন করা কোয়েরি প্যারামিটার বহন করে যা আপনি তৃতীয় পক্ষের সার্ভিসে রাখতে চান না। এই পার্সার একই URL অ্যালগরিদম ব্যবহার করে যা আপনার ব্রাউজার ইতিমধ্যে স্থানীয়ভাবে চালায় — কোনো আপলোড নেই, কোনো নেটওয়ার্ক কল নেই।
- আপনার কোড যা দেখে তার সাথে মেলে. Node.js, Deno, আধুনিক ব্রাউজার এবং Cloudflare Workers সবই WHATWG URL ইমপ্লিমেন্টেশন শিপ করে। এখানে একটি URL পরিদর্শন করা আপনাকে একই উপাদান বিভাজন দেয় যা প্রোডাকশনে একটি
new URL(input)কল দেয়। - কোয়েরি স্ট্রিং মানুষের মতো পড়ে. কাঁচা এবং ডিকোড করা মান পাশাপাশি থাকে, তাই একটি
q=hello%20worldজোড়া একটি নজরে ওয়্যার বাইট এবং পাঠযোগ্যhello worldউভয়ই দেখায়। মানসিক URL-ডিকোডিং প্রয়োজন নেই। - রাউন্ড-ট্রিপ সম্পাদনা. একটি ট্র্যাকিং প্যারামিটার বাদ দিন, পাথে টাইপো ঠিক করুন, একটি পোর্ট পরিবর্তন করুন — এবং URL পুনর্নির্মাণ করুন। আউটপুট URL কনস্ট্রাক্টরের মধ্য দিয়ে ফিরে যায় তাই আপনি কপি করার আগে কোনো অবৈধ জিনিস প্রকাশ পায়।
সাধারণ প্রয়োগ
URL পার্সিং প্রতিদিনের ডেভেলপার, নিরাপত্তা এবং অ্যানালিটিক্স কাজে দেখা যায় যখন একটি URL শুধু একটি লিঙ্কের চেয়ে বেশি।
- API এন্ডপয়েন্ট ডিবাগিং: curl বা Postman অনুরোধ পাঠানোর আগে বেস URL, পাথ এবং কোয়েরি প্যারামিটার নিশ্চিত করুন।
- ট্র্যাকিং-প্যারামিটার অডিট: একটি ল্যান্ডিং-পেজ URL-এ প্রতিটি UTM, gclid, fbclid বা ক্যাম্পেইন কী তালিকা করুন এবং কোনটি রাখবেন সিদ্ধান্ত নিন।
- অ্যাফিলিয়েট ও পার্টনার লিঙ্ক যাচাই করা: একটি ডিপলিঙ্ক পেস্ট করুন, প্রকাশ করার আগে গন্তব্য হোস্ট এবং এমবেডেড রিডাইরেক্ট টার্গেট নিশ্চিত করুন।
একটি কাজের উদাহরণ
ইনপুটে https://example.com/search?q=hello%20world&lang=en পেস্ট করুন। প্রোটোকল https:, হোস্টনেম example.com, পাথনেম /search এবং সার্চ ?q=hello%20world&lang=en পড়া হয়। কোয়েরি টেবিল দুটি সারি দেখায়: q কাঁচা মান hello%20world এবং ডিকোড করা মান hello world সহ, তারপর lang কাঁচা ও ডিকোড উভয় মান en সহ। lang সারিতে Remove ক্লিক করুন, তারপর Build URL — ইনপুট https://example.com/search?q=hello%20world-এ আপডেট হয়।
FAQ
URL পার্সার কী?
একটি URL পার্সার একটি URL স্ট্রিং নিয়ে নামযুক্ত উপাদানে বিভক্ত করে: প্রোটোকল (https), ইউজারইনফো (ব্যবহারকারীর নাম, পাসওয়ার্ড), হোস্ট (হোস্টনেম প্লাস ঐচ্ছিক পোর্ট), পাথ, কোয়েরি স্ট্রিং এবং ফ্র্যাগমেন্ট। এটি প্রতিটি কোয়েরি প্যারামিটারও ডিকোড করে যাতে পার্সেন্ট-এনকোডেড মান (যেমন স্পেসের জন্য %20) পাঠযোগ্য হয়। এখানের পার্সার WHATWG URL মানদণ্ড ব্যবহার করে, একই যা আপনার ব্রাউজার একটি পেজ লোড করতে ব্যবহার করে।
হোস্ট এবং হোস্টনেমের মধ্যে পার্থক্য কী?
হোস্টনেম শুধু ডোমেন (বা IP ঠিকানা) — example.com:8080-এর জন্য হোস্টনেম হলো example.com। হোস্ট হলো হোস্টনেম প্লাস পোর্ট যখন একটি নন-ডিফল্ট পোর্ট উপস্থিত থাকে, তাই একই URL-এর হোস্ট হলো example.com:8080। ডিফল্ট পোর্টে URL-এর (https-এর জন্য 443, http-এর জন্য 80) হোস্ট এবং হোস্টনেম অভিন্ন।
ডিকোডিং কি স্বয়ংক্রিয়ভাবে হয়?
স্ট্রাকচারাল উপাদান (প্রোটোকল, হোস্টনেম, পোর্ট, পাথনেম) অতিরিক্ত ডিকোডিং ছাড়াই URL অবজেক্ট থেকে সরাসরি পড়া হয় — URL কনস্ট্রাক্টর ইতিমধ্যে সেগুলো স্বাভাবিক করে। কোয়েরি মান দুবার দেখানো হয়: কাঁচা পার্সেন্ট-এনকোডেড স্ট্রিং যেমন search-এ দেখা যায়, এবং decodeURIComponent দ্বারা তৈরি ডিকোড করা মান।
URL সম্পাদনা ও পুনর্নির্মাণ করা যাবে কি?
হ্যাঁ। প্রতিটি পার্টস সেল এবং প্রতিটি কোয়েরি-প্যারামিটার সেল সম্পাদনযোগ্য। Add এবং Remove বাটন দিয়ে কোয়েরি সারি যোগ বা সরান, তারপর Build URL from parts ক্লিক করুন। টুলটি আপনার সম্পাদনা URL কনস্ট্রাক্টরের মধ্য দিয়ে ফিরিয়ে চালায় এবং ইনপুটে ফলাফল লেখে — সম্পাদনা অবৈধ URL তৈরি করলে আপনি নিজের কোডে new URL() থেকে যে একই ত্রুটি পাবেন সেটিই পাবেন।
URL পার্সিং সেই ছোট কাজগুলোর মধ্যে একটি যা প্রতিটি ওয়েব ডেভেলপার প্রতি সপ্তাহে করেন। ব্রাউজারে করা, একই অ্যালগরিদম দিয়ে যা প্রোডাকশন কোড ব্যবহার করে, কাজটি দ্রুত রাখে এবং ডেটা আপনার মেশিনে রাখে।