URL پارسنگ کیسے کام کرتی ہے
پارسر WHATWG URL معیار پر چلتا ہے، وہی الگورتھم جو براؤزر کسی بھی href کے لیے استعمال کرتا ہے۔ ہم سٹرنگ کو مقامی URL کنسٹرکٹر کو دیتے ہیں اور ہر جزو کو پراپرٹی کے طور پر واپس پڑھتے ہیں۔
- ان پٹ کی جانچ. خالی سٹرنگ پر خالی ان پٹ کا پیغام ظاہر ہوتا ہے۔ بصورتِ دیگر ہم متن کو
new URL(text)پر بھیجتے ہیں؛ TypeError کا مطلب ہے کہ سٹرنگ درست absolute URL نہیں ہے۔ - ساختی اجزاء پڑھنا. ہم URL آبجیکٹ سے
protocol،username،password،host،hostname،port،pathname،search،hashاورoriginپڑھتے ہیں۔ ہر ایک اپنی قطار میں دکھتا ہے تاکہ آپ اسے الگ کاپی کر سکیں۔ - کوئری سٹرنگ کا جائزہ. ہم
url.searchParams.entries()پر چکر لگاتے ہیں اور ہر کلید کے لیے ایک ٹیبل قطار بناتے ہیں۔ خام قدرdecodeURIComponent(value)کے ساتھ رکھی جاتی ہے تاکہ پرسنٹ انکوڈڈ مواد (خالی جگہیں، پلس نشانات، Unicode) سادہ متن میں پڑھا جا سکے۔ - مانگ پر تعمیرِ نو. کسی سیل کو تبدیل کریں، قطار حذف کریں، یا نیا پیرامیٹر شامل کریں، پھر Build URL پر کلک کریں۔ ٹول آپ کی ترامیم سے نیا URL آبجیکٹ بناتا ہے اور نتیجہ ان پٹ باکس میں لکھتا ہے۔
- لائیو موڈ. لائیو موڈ چالو کریں اور ہر کی اسٹروک پر 150 ms debounce کے ساتھ URL دوبارہ پارس ہو جائے گا۔ یہ اس وقت مفید ہے جب آپ لاگ سے ٹکڑے paste کر کے فوری نتیجہ چاہتے ہوں۔
اپنے براؤزر میں URL کیوں پارس کریں
- ٹیب سے کچھ باہر نہیں جاتا. URLs میں ٹوکن، سیشن IDs، OAuth state اور دستخط شدہ کوئری پیرامیٹرز ہوتے ہیں جو آپ کسی تھرڈ پارٹی سروس کو نہیں دینا چاہتے۔ یہ پارسر وہی URL الگورتھم استعمال کرتا ہے جو آپ کا براؤزر مقامی طور پر چلاتا ہے — کوئی اپلوڈ نہیں، کوئی نیٹ ورک کال نہیں۔
- آپ کے کوڈ جیسا نتیجہ. Node.js، Deno، جدید براؤزر اور Cloudflare Workers سب WHATWG URL implementation کے ساتھ آتے ہیں۔ یہاں URL کا معائنہ وہی اجزاء دیتا ہے جو پروڈکشن میں
new URL(input)کال دیتی ہے۔ - کوئری سٹرنگز انسانوں کی طرح پڑھتا ہے. خام اور ڈیکوڈ شدہ قدریں ساتھ ساتھ دکھتی ہیں، اس لیے
q=hello%20worldجوڑا wire bytes اور پڑھنے کے قابلhello worldدونوں ایک نظر میں دکھاتا ہے۔ ذہنی URL ڈیکوڈنگ کی ضرورت نہیں۔ - راؤنڈ ٹرپ ترمیم. ٹریکنگ پیرامیٹر ہٹائیں، پاتھ میں ٹائپو ٹھیک کریں، پورٹ بدلیں — اور URL دوبارہ بنائیں۔ آؤٹ پٹ URL کنسٹرکٹر سے گزرتا ہے اس لیے کوئی بھی غلط چیز کاپی کرنے سے پہلے سامنے آ جاتی ہے۔
عام استعمال
URL پارسنگ ڈویلپرز، سیکیورٹی اور اینالیٹکس کے روزمرہ کام میں تب سامنے آتی ہے جب URL محض ایک لنک سے زیادہ ہو۔
- API اینڈ پوائنٹس ڈیبگ کرنا: curl یا Postman درخواست بھیجنے سے پہلے base URL، پاتھ اور کوئری پیرامیٹرز تصدیق کریں۔
- ٹریکنگ پیرامیٹر آڈٹ: لینڈنگ پیج URL پر ہر UTM، gclid، fbclid یا کیمپین کلید کی فہرست بنائیں اور فیصلہ کریں کہ کون سی رکھنی ہے۔
- الحاق اور پارٹنر لنکس کی جانچ: ڈیپ لنک paste کریں، منزل ہوسٹ اور اندر موجود ری ڈائریکٹ ہدف کی اشاعت سے پہلے تصدیق کریں۔
ایک عملی مثال
https://example.com/search?q=hello%20world&lang=en کو ان پٹ میں paste کریں۔ پروٹوکول 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 معیار استعمال کرتا ہے، وہی جو براؤزر صفحہ لوڈ کرنے کے لیے استعمال کرتا ہے۔
host اور hostname میں کیا فرق ہے؟
Hostname صرف ڈومین (یا IP ایڈریس) ہے — example.com:8080 کے لیے hostname example.com ہے۔ Host، hostname کے ساتھ پورٹ بھی شامل کرتا ہے جب غیر ڈیفالٹ پورٹ موجود ہو، اس لیے اسی URL کا host example.com:8080 ہے۔ ڈیفالٹ پورٹ (https کے لیے 443، http کے لیے 80) پر URLs میں host اور hostname ایک جیسے ہوتے ہیں۔
کیا ڈیکوڈنگ خودکار ہوتی ہے؟
ساختی اجزاء (پروٹوکول، ہوسٹ نیم، پورٹ، پاتھ نیم) URL آبجیکٹ سے براہِ راست پڑھے جاتے ہیں بغیر اضافی ڈیکوڈنگ کے — URL کنسٹرکٹر انہیں پہلے سے معمول پر لا چکا ہوتا ہے۔ کوئری قدریں دو بار دکھائی جاتی ہیں: خام پرسنٹ انکوڈڈ سٹرنگ جیسی search میں دکھتی ہے، اور decodeURIComponent سے حاصل ڈیکوڈ شدہ قدر۔ اس طرح آپ جو بھی شکل چاہیں کاپی کر سکتے ہیں۔
کیا میں URL تبدیل کر کے دوبارہ بنا سکتا ہوں؟
جی ہاں۔ ہر حصے کا سیل اور ہر کوئری پیرامیٹر سیل قابلِ ترمیم ہے۔ Add اور Remove بٹنوں سے کوئری قطاریں شامل یا ہٹائیں، پھر Build URL from parts پر کلک کریں۔ ٹول آپ کی ترامیم کو URL کنسٹرکٹر میں واپس چلاتا ہے اور نتیجہ ان پٹ میں لکھتا ہے — اگر ترامیم غلط URL بنائیں تو وہی خطا پیغام ملتا ہے جو آپ کے اپنے کوڈ میں new URL() دیتا ہے۔
URL پارسنگ انہی چھوٹے کاموں میں سے ہے جو ہر ویب ڈویلپر ہر ہفتے کرتا ہے۔ براؤزر میں، اسی الگورتھم کے ساتھ جو پروڈکشن کوڈ استعمال کرتا ہے، یہ کام تیز اور ڈیٹا آپ کی مشین پر محفوظ رہتا ہے۔