عناوين URL وسلاسل الاستعلام
عناوين URL وسلاسل الاستعلام
طبقة URL تنفّذ التحليل على نمط WHATWG — نفس السلوك الذي تطبّقه المتصفحات — بحيث تُحلّ عناوين URL المستخرجة من المستندات وتُعَدِّل كما لو كانت في وكيل مستخدم حقيقي.
التحليل والتحقق
URL.parse() يحلل عنوان URL مطلق أو نسبي؛ URL.can_parse() يجيب عن الصلاحية دون إنشاء كائن. فشل التحليل يرفع الاستثناء من النوع URLParseError.
سلاسل الاستعلام
URLSearchParams يقرأ ويحرّر معلمات الاستعلام: append()، get()، get_all()، has()، وdelete() تغطي دورة الإرسال والاستلام بالكامل، مع الحفاظ على دلالات القيم المتعددة.
نصائح وأفضل الممارسات
- استخدم
can_parse()للتحقق الرخيص في الفلاتر؛ أنشئ باستخدامparse()فقط عندما تحتاج إلى المكوّنات - تذكر أن مفاتيح الاستعلام تتكرر — استخدم
get_all()عندما قد يظهر معامل أكثر من مرة - التقط
URLParseErrorبدلاً من التحقق المسبق باستخدام التعبيرات النمطية
مشكلات شائعة
| مشكلة | السبب | إصلاح |
|---|---|---|
| فشل تحليل عنوان URL النسبي | لم يتم توفير القاعدة | قدِّم القاعدة وفقًا لـ URL.parse() |
| تم إرجاع قيمة الاستعلام الأولى فقط | تم استخدام get() على مفتاح مكرر | استخدم get_all() |
| أحرف غريبة في المكوّنات | تطبيع WHATWG في العمل | متوقع — هذا يتطابق مع سلوك المتصفح |
FAQ
هل يتبع التحليل المعيار الخاص بـ WHATWG؟
نعم — التطبيع وتقسيم المكوّنات يعكسان سلوك المتصفح.
كيف يمكنني التحقق من عنوان URL دون تحليله؟
URL.can_parse() يعيد الصلاحية دون إنشاء كائن.
هل يمكنني تعديل سلسلة الاستعلام في موضعها؟
نعم — URLSearchParams يدعم عمليات الإلحاق/الحصول/التحقق/الحذف المتبادلة.
ملخص API Reference
| فئة/طريقة | وصف |
|---|---|
URL.parse | تحليل عنوان URL |
URL.can_parse | التحقق من الصلاحية دون إنشاء |
URLSearchParams.append | أضف معلمة استعلام |
URLSearchParams.get_all | جميع القيم لمفتاح |
URLParseError | فشل في التحليل المكتوب |