Parser URL

URL (Uniform Resource Locator) mengidentifikasi sumber daya di web. Alat ini memecah URL menjadi bagian-bagian komponennya: skema, host, port, path, parameter query, dan fragmen. Secara otomatis mendekode nilai yang di-encode persen, menangani nama domain internasional (IDN) dengan konversi Punycode, dan dapat mendeteksi data tertanam seperti Base64 atau JSON dalam parameter.

Spesifikasi

Kasus Penggunaan Umum

  • Debug URL redirect OAuth 2.0 dan parameter callback
  • Memeriksa URL webhook dan parameter query-nya
  • Menganalisis parameter pelacakan (UTM, data referrer)
  • Mendekode deep link mobile (app://, skema kustom)
  • Memecahkan masalah routing URL
  • Mengonversi nama domain internasional antara Unicode dan Punycode

Fitur

  • Mengurai semua komponen URL (skema, host, port, path, query, fragmen)
  • Mendekode nilai yang di-encode persen (URL-encoded) secara otomatis
  • Mengurai query string menjadi pasangan kunci-nilai
  • Mengonversi nama domain internasional (IDN) antara Unicode dan Punycode
  • Mendeteksi dan mendekode Base64 atau JSON dalam nilai parameter
  • Menyalin komponen individual ke clipboard

Contoh

Callback OAuth

Coba →

Callback otorisasi OAuth 2.0 dengan parameter code dan state.

https://app.example.com/callback?code=abc123&state=xyz789&redirect_uri=https%3A%2F%2Fexample.com

Domain Internasional (Punycode)

Coba →

URL dengan nama domain berenkode Punycode (prefiks xn-- menunjukkan IDN).

https://xn--mnchen-3ya.de/path

Domain Internasional (Unicode)

Coba →

URL dengan nama domain Unicode yang akan dikonversi ke Punycode.

https://münchen.de/path

Tips

  • Encoding persen mengganti karakter tidak aman dengan %XX di mana XX adalah nilai hex.
  • Fragmen (#) tidak pernah dikirim ke server; hanya untuk sisi klien.
  • Parameter query dapat muncul beberapa kali dengan kunci yang sama.
  • Beberapa karakter seperti @ dan : dalam userinfo memerlukan encoding.
  • Gunakan encodeURIComponent() untuk nilai parameter, encodeURI() untuk URL lengkap.

Pemahaman Parser URL

URL (Uniform Resource Locator) adalah sistem pengalamatan web, didefinisikan oleh RFC 3986 sebagai tipe spesifik dari URI (Uniform Resource Identifier). URL terdiri dari beberapa komponen: skema (protokol seperti https), otoritas (host, port opsional, userinfo opsional), path, query string opsional dari parameter kunci-nilai, dan identifier fragmen opsional.

Encoding persen (URL encoding) adalah mekanisme untuk merepresentasikan karakter khusus dalam URL. Karakter di luar set tidak terreservasi (A-Z, a-z, 0-9, -, _, ., ~) harus di-encode sebagai %XX di mana XX adalah nilai hex dari byte tersebut. Spasi menjadi %20 (atau + dalam query string). Karakter non-ASCII pertama di-encode sebagai byte UTF-8, kemudian setiap byte di-encode persen.

Query string membawa parameter sebagai pasangan key=value yang dipisahkan oleh karakter &. Aplikasi web menggunakannya untuk istilah pencarian, paginasi, penyaringan, pengurutan, dan pelacakan (parameter UTM). URL redirect OAuth 2.0 membawa kode otorisasi dan token state dalam parameter query. Nilai kompleks mungkin sendiri di-URL-encode, menciptakan lapisan encoding yang memerlukan decoding hati-hati.

Nama domain internasional (IDN) menggunakan encoding Punycode (RFC 3492) untuk merepresentasikan karakter non-ASCII dalam nama domain. Prefiks xn-- menandakan label berenkode Punycode. Misalnya, muenchen.de menjadi xn--mnchen-3ya.de. Encoding ini memastikan kompatibilitas dengan sistem DNS khusus ASCII sambil mendukung nama domain dalam skrip apa pun.

JavaScript menyediakan dua fungsi untuk URL encoding yang melayani tujuan berbeda. encodeURI meng-encode URI lengkap, mempertahankan karakter yang memiliki makna struktural dalam URL (seperti : / ? # @ dan =). encodeURIComponent meng-encode komponen URI tunggal seperti nilai parameter query, meng-encode semua karakter khusus termasuk / dan &. Gunakan encodeURIComponent untuk nilai parameter dan encodeURI hanya saat meng-encode URL lengkap. Identifier fragmen (semua setelah #) didefinisikan oleh RFC 3986 sebagai hanya sisi klien — browser menggunakannya untuk navigasi dalam halaman dan routing sisi klien di aplikasi halaman tunggal, tetapi tidak pernah disertakan dalam permintaan HTTP yang dikirim ke server.

Punycode adalah encoding yang memungkinkan nama domain internasional dalam sistem DNS khusus ASCII. Domain yang berisi karakter non-Latin disimpan di DNS menggunakan Punycode dengan prefiks xn--, sehingga muenchen.de disimpan sebagai xn--mnchen-3ya.de. Browser menampilkan bentuk Unicode kepada pengguna sambil menggunakan bentuk Punycode untuk resolusi DNS di belakang layar.

Query string dapat berisi beberapa nilai untuk nama parameter yang sama, seperti ?color=red&color=blue. Framework yang berbeda menangani ini secara berbeda — beberapa mengembalikan nilai terakhir, beberapa yang pertama, dan beberapa mengembalikan array dari semua nilai. Alat ini menampilkan semua kemunculan parameter. Dalam JavaScript, URLSearchParams.getAll() mengambil semua nilai untuk kunci yang berulang daripada hanya yang pertama atau terakhir.

← Kembali ke semua alat