URL Parser

Saat webhook gagal atau tautan pelacakan membawa parameter yang salah, cara tercepat adalah memecah URL dan membaca setiap bagian. Tempel URL apa pun dan parser ini memecahnya menjadi komponen-komponennya: scheme, nama pengguna dan kata sandi, host, port, path, query string, dan fragment, lalu membentangkan query menjadi tabel berisi tiap pasangan kunci dan nilai. Alat ini berjalan di server kami dengan parser URL standar milik PHP, jadi Anda melihat persis bagaimana backend PHP membaca tautan yang sama.

Cara mem-parse URL

  1. 1

    Tempel URL

    Masukkan URL apa pun, absolut maupun relatif. Tidak ada yang perlu diklik: URL di-parse saat Anda mengetik.

  2. 2

    Baca komponennya

    Tabel terisi dengan scheme, host, port, pengguna, kata sandi, path, query, dan fragment yang ditemukan. Bagian yang kosong ditampilkan sebagai tanda hubung.

  3. 3

    Bentangkan query

    Setiap pasangan `key=value` muncul di barisnya sendiri, dengan percent-encoding dan `+` didekode menjadi karakter sebenarnya.

  4. 4

    Salin parameter

    Tombol salin mengambil semua parameter query sekaligus sebagai baris `key=value`, siap ditempel ke klien API.

Anatomi sebuah URL

Ambil URL ini: https://user:pass@api.example.com:8443/v1/users?page=2&sort=name#profile. Parser memecahnya menjadi:

Komponen Nilai
scheme https
user user
pass pass
host api.example.com
port 8443
path /v1/users
query page=2&sort=name
fragment profile

Setelah itu, query string dibentangkan menjadi tabel tersendiri: page = 2 dan sort = name.

Cara query string dibaca

  • Nilai didekode dari percent-encoding dan + menjadi spasi, sehingga q=hello%20world dan q=hello+world sama-sama dibaca sebagai hello world.
  • Sebuah pasangan dipecah pada = pertamanya, sehingga token=a=b=c mempertahankan a=b=c sebagai nilai.
  • Kunci yang berulang hanya menyimpan nilai terakhir: ?id=1&id=2 menghasilkan id = 2. Untuk menyimpan semua nilai, gunakan sintaks array id[]=1&id[]=2, yang ditampilkan sebagai daftar.
  • Kunci dengan tanda kurung siku seperti filter[status]=open menjadi struktur bersarang, ditampilkan sebagai JSON.

Port, path, dan fragment

  • Port ditampilkan persis seperti yang ditulis. Tidak ada yang ditambahkan atau dihapus, sehingga :443 muncul sebagai 443 dan URL tanpa port membiarkan barisnya kosong.
  • Garis miring di akhir mengubah path: https://a.com memiliki path kosong, sedangkan https://a.com/ memiliki path /.
  • Fragment (setelah #) adalah nilai yang hanya digunakan browser untuk melompat ke anchor atau menggerakkan router sisi klien. Ia tidak pernah mencapai server, jadi apa pun yang perlu dibaca backend harus berada di query string.
  • Host dikembalikan persis seperti yang diketik; parser ini tidak mengubah domain terinternasionalisasi (non-ASCII) ke atau dari Punycode.

Pertanyaan yang Sering Diajukan

Bisa. Tautan relatif seperti /v1/users?ref=nav tidak memiliki scheme atau host, jadi baris-baris itu tetap kosong sementara path dan query tetap terisi. Hanya URL yang salah format, misalnya dengan port non-numerik seperti http://a.com:port, yang ditolak sepenuhnya.

Hanya nilai terakhir yang disimpan, sehingga ?id=1&id=2 menghasilkan id = 2, persis seperti cara backend PHP membacanya. Jika Anda membutuhkan semua nilai, gunakan sintaks array id[]=1&id[]=2 dan nilai-nilai itu akan muncul sebagai daftar.

Parser melaporkan port persis seperti yang ditulis. Ia tidak pernah menghapus port default atau menambahkan port yang hilang, sehingga URL tanpa port menampilkan baris kosong dan https://a.com:443 menampilkan 443.

URL dikirim ke server kami untuk di-parse, karena alat ini berjalan di sisi server, bukan hanya di browser Anda. Kami tidak menyimpan URL itu sendiri; kami hanya mencatat hitungan anonim bahwa parser telah digunakan.

Alat Terkait

Alat ini tersedia dalam bahasa lain