كيف يعمل تحليل URL؟
يعمل المحلل وفق معيار WHATWG URL، وهو نفس الخوارزمية التي يستخدمها المتصفح لأي رابط href. نُمرِّر السلسلة إلى منشئ URL الأصلي ونقرأ كل مكوِّن كخاصية منفصلة.
- التحقق من المدخل. السلسلة الفارغة تُظهر تنبيه المدخل الفارغ. وإلا نُمرِّر النص إلى
new URL(text)؛ فإن أعاد TypeError فالسلسلة ليست رابطاً مطلقاً صالحاً. - قراءة المكونات الهيكلية. نقرأ
protocolوusernameوpasswordوhostوhostnameوportوpathnameوsearchوhashوoriginمن كائن URL. كل منها يُعرض في صفه الخاص حتى تتمكن من نسخه منفرداً. - استعراض سلسلة الاستعلام. نكرر على
url.searchParams.entries()ونعرض صف جدول لكل مفتاح. القيمة الخام تجلس بجانبdecodeURIComponent(value)حتى تُقرأ الحمولات المُرمَّزة بنسب مئوية (مسافات، إشارات plus، يونيكود) بصورة واضحة. - إعادة البناء عند الطلب. عدِّل أي خلية أو احذف صفاً أو أضف معاملاً جديداً، ثم انقر «إنشاء رابط». تُعيد الأداة بناء كائن URL جديد من تعديلاتك وتكتب النتيجة في حقل الإدخال.
- الوضع الحي. فعِّل الوضع الحي وكل ضغطة مفتاح تُعيد تحليل الرابط مع تأخير 150 ميلي ثانية. مفيد عند لصق أجزاء من سجلات وتريد تغذية راجعة فورية.
لماذا تحلل رابط URL في متصفحك؟
- لا شيء يغادر علامة التبويب. تحمل الروابط رموزاً ومعرفات جلسات وحالة OAuth ومعاملات موقَّعة لا تريد لجهة خارجية الاحتفاظ بها. يستخدم هذا المحلل نفس خوارزمية URL التي يُشغِّلها متصفحك محلياً — لا رفع، لا اتصال بالشبكة.
- يطابق ما يراه كودك. يأتي Node.js وDeno والمتصفحات الحديثة وCloudflare Workers جميعها بتطبيق WHATWG URL. فحص رابط هنا يعطيك نفس تقسيم المكونات الذي تحصل عليه من استدعاء
new URL(input)في بيئة الإنتاج. - يقرأ سلاسل الاستعلام كما يقرأها الإنسان. القيمتان الخام والمفكوكة تجلسان جنباً إلى جنب، فزوج
q=hello%20worldيعرض البايتات الأولية والنص المقروءhello worldفي نظرة واحدة. لا حاجة لفك ترميز ذهني. - تحرير ذهاباً وإياباً. احذف معامل تتبع، أو صحِّح خطأ إملائياً في المسار، أو غيِّر منفذاً — ثم أعد بناء الرابط. يمر الناتج عبر منشئ URL مجدداً فيظهر أي خطأ قبل أن تنسخه.
تطبيقات شائعة
يظهر تحليل URL في العمل اليومي للمطورين ومتخصصي الأمن والتحليلات كلما كان الرابط أكثر من مجرد وصلة.
- تصحيح نقاط نهاية API: تأكَّد من الرابط الأساسي والمسار ومعاملات الاستعلام قبل إرسال طلب curl أو Postman.
- تدقيق معاملات التتبع: أدرج كل 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، ثم «إنشاء رابط» — يتحدث حقل الإدخال ليصبح https://example.com/search?q=hello%20world.
FAQ
ما هو محلل URL؟
محلل URL يأخذ سلسلة رابط ويُقسِّمها إلى مكونات مُسمَّاة: البروتوكول (https)، ومعلومات المستخدم (اسم المستخدم وكلمة المرور)، والمضيف (اسم المضيف مع المنفذ الاختياري)، والمسار، وسلسلة الاستعلام، والمرساة. ويفك ترميز كل معامل استعلام حتى تُقرأ القيم المُرمَّزة بنسب مئوية (مثل %20 للمسافة). يستخدم المحلل هنا معيار WHATWG URL، نفس المعيار الذي يستخدمه متصفحك لتحميل الصفحة.
ما الفرق بين host وhostname؟
hostname هو النطاق فقط (أو عنوان IP) — في example.com:8080 يكون hostname هو example.com. أما host فهو hostname مضافاً إليه المنفذ عند وجود منفذ غير افتراضي، فنفس الرابط يكون host فيه example.com:8080. بالنسبة للروابط على المنافذ الافتراضية (443 لـhttps، و80 لـhttp) يكون host وhostname متطابقَيْن.
هل يحدث فك الترميز تلقائياً؟
المكونات الهيكلية (البروتوكول واسم المضيف والمنفذ والمسار) تُقرأ مباشرة من كائن URL دون فك ترميز إضافي — منشئ URL يُطبِّع هذه المكونات بالفعل. قيم الاستعلام تُعرض مرتَيْن: السلسلة الخام المُرمَّزة بنسب مئوية كما تظهر في search، والقيمة المفكوكة الناتجة عن decodeURIComponent. بذلك تنسخ النموذج الذي تتوقعه الأداة التالية.
هل يمكنني التعديل وإعادة بناء الرابط؟
نعم. كل خلية من خلايا الأجزاء وكل خلية من خلايا معاملات الاستعلام قابلة للتعديل. أضف صفوف استعلام أو احذفها بأزرار الإضافة والحذف، ثم انقر «إنشاء رابط من الأجزاء». تُمرِّر الأداة تعديلاتك عبر منشئ URL وتكتب النتيجة في حقل الإدخال — إن أنتجت التعديلات رابطاً غير صالح تحصل على نفس رسالة الخطأ التي تحصل عليها من new URL() في كودك.
تحليل URL من تلك المهام الصغيرة التي ينجزها كل مطور ويب كل أسبوع. إجراؤها في المتصفح بنفس الخوارزمية التي يستخدمها كود الإنتاج يُبقي العمل سريعاً والبيانات على جهازك.