URL dan String Kueri
URL dan String Kuery
Lapisan URL mengimplementasikan parsing gaya WHATWG — perilaku yang sama diterapkan oleh peramban — sehingga URL yang diekstrak dari dokumen dapat diselesaikan dan dinormalisasi seperti yang dilakukan oleh agen pengguna yang sesungguhnya.
Penguraian dan Validasi
URL.parse() mengurai URL absolut atau relatif; URL.can_parse() memberikan jawaban mengenai keabsahan tanpa membuat objek. Kegagalan penguraian memunculkan URLParseError yang bertipe.
String Kuery
URLSearchParams membaca dan mengedit parameter kueri: append(), get(), get_all(), has(), dan delete() mencakup proses bolak-balik, mempertahankan semantik multi-nilai.
Tips dan Praktik Terbaik
- Gunakan
can_parse()untuk validasi murah di filter; buat denganparse()hanya ketika Anda membutuhkan komponen tersebut - Ingat kunci kueri dapat berulang — gunakan
get_all()ketika sebuah parameter mungkin muncul lebih dari sekali - Tangkap
URLParseErrordaripada memvalidasi terlebih dahulu dengan ekspresi reguler
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| URL relatif gagal diurai | Tidak ada base yang disediakan | Sediakan base sesuai URL.parse() |
| Hanya nilai kueri pertama yang dikembalikan | Menggunakan get() pada kunci yang berulang | Gunakan get_all() |
| Karakter aneh di komponen | Normalisasi WHATWG sedang bekerja | Diharapkan — ini cocok dengan perilaku peramban |
FAQ
Apakah parsing mengikuti standar WHATWG?
Ya — normalisasi dan pemisahan komponen mencerminkan perilaku peramban.
Bagaimana cara memeriksa URL tanpa memparsenya?
URL.can_parse() mengembalikan validitas tanpa konstruksi objek.
Apakah saya dapat mengedit query string di tempat?
Ya — URLSearchParams mendukung operasi append/get/has/delete secara round-trip.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
URL.parse | Mengurai URL |
URL.can_parse | Pemeriksaan keabsahan tanpa konstruksi |
URLSearchParams.append | Tambahkan parameter kueri |
URLSearchParams.get_all | Semua nilai untuk sebuah kunci |
URLParseError | Kegagalan parsing bertipe |