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.parse() فراهم کنید |
| فقط اولین مقدار query برگردانده شد | از get() برای یک کلید تکراری استفاده شد | از get_all() استفاده کنید |
| کاراکترهای عجیب در مؤلفهها | نرمالسازی WHATWG در عمل | انتظار میرود — این با رفتار مرورگر مطابقت دارد |
FAQ
آیا تجزیه/تحلیل مطابق استاندارد WHATWG است؟
بله — نرمالسازی و تقسیم مؤلفهها رفتار مرورگرها را بازتاب میدهند.
چگونه میتوانم یک URL را بدون تجزیه/تحلیل بررسی کنم؟
URL.can_parse() اعتبار را بدون ساختن شیء برمیگرداند.
آیا میتوانم یک رشتهٔ پرسوجو را درجا ویرایش کنم؟
بله — URLSearchParams از round-trips عملیات append/get/has/delete پشتیبانی میکند.
API Reference خلاصه
| کلاس/متد | توضیح |
|---|---|
URL.parse | تجزیه یک URL |
URL.can_parse | بررسی اعتبار بدون ساخت |
URLSearchParams.append | یک پارامتر پرسوجو اضافه کنید |
URLSearchParams.get_all | تمام مقادیر یک کلید |
URLParseError | خطای تجزیهٔ تایپی |