Pengekod URL

5 daripada 2 penilaian

Pengekod URL ialah alat percuma yang menukar rentetan kepada perwakilan berkod borang yang digunakan dalam parameter pertanyaan URL dan data web berasaskan teks yang lain.

Apakah pengekodan URL dan mengapa ia digunakan?

Pengekodan URL menggantikan aksara yang mempunyai makna khas dalam URL dengan tanda peratus diikuti digit perenambelasan. Dengan cara ini, teks boleh dihantar melalui sistem yang hanya menerima set aksara tertentu.

Contohnya, ampersan memisahkan parameter pertanyaan. Jadi, ampersan yang merupakan sebahagian daripada nilai perlu dikodkan sebagai %26. Ruang juga perlu dikendalikan secara khusus. Alat ini menggunakan fungsi urlencode PHP, yang menukar ruang kepada tanda tambah.

Sebelum: tea and cake

Selepas: tea+and+cake

Anda mungkin menemui teks berkod URL dalam:

  • rentetan pertanyaan yang dihantar melalui borang web;
  • URI data yang mengandungi teks yang tidak boleh dimasukkan secara literal;
  • pautan dalam mesej e-mel;
  • nilai URL yang disimpan dalam muatan JSON;
  • parameter ubah hala dan panggil balik yang digunakan oleh aplikasi web;
  • URL yang dikaitkan dengan domain berantarabangsa, walaupun nama domain itu sendiri mungkin memerlukan Punycode dan bukannya pengekodan peratus.

Pengekodan URL bukan penyulitan dan tidak merahsiakan data. Sesiapa yang dapat melihat nilai URL berkod peratus boleh menyahkodnya.

Bagaimanakah cara menggunakan Pengekod URL?

Masukkan rentetan yang perlu dikodkan, jalankan alat ini, kemudian lihat nilai yang telah ditukar dalam medan hasil URL dikodkan. Kodkan nilai itu sendiri, bukan tanda petikan atau teks penerangan di sekelilingnya.

Proses ini berlaku pada pelayan. Input anda dihantar kepada pelayan melalui HTTPS dan tidak disimpan. Walaupun begitu, elakkan memasukkan kata laluan, token sesi atau data peribadi sulit dalam URL kerana alamat web boleh muncul dalam sejarah pelayar, sistem analitik dan log pelayan.

Untuk membalikkan proses ini, gunakan Penyahkod URL. Jika dinyahkod dengan betul, hasilnya sepatutnya sepadan dengan teks asal, dengan syarat pengekodan aksara dan peraturan pengekodan borang yang sama digunakan dalam kedua-dua arah.

Perlukah saya mengekod seluruh URL atau nilai parameter sahaja?

Biasanya, anda hanya perlu mengekod setiap nilai parameter, bukan keseluruhan URL. Jika seluruh alamat dikodkan, aksara struktur seperti titik bertindih, garis miring, tanda soal dan tanda sama dengan turut akan digantikan.

Katakan nilai carian ialah green tea & coffee. Bentuk berkodnya ialah green+tea+%26+coffee, yang boleh diletakkan selepas nama parameter. Jika seluruh alamat dikodkan, pemisah yang diperlukan oleh pelayar untuk mengenal pasti skema, hos, laluan dan rentetan pertanyaannya akan menjadi tidak jelas.

Penggunaan urlencode oleh alat ini sesuai untuk parameter pertanyaan gaya borang HTML. Sebaliknya, sesetengah API dan segmen laluan mengikut konvensyen RFC 3986, yang menulis ruang sebagai %20 dan bukannya +. Semak sama ada sistem penerima mengharapkan pengekodan borang dengan + atau format RFC 3986 dengan %20.

Contoh pengekodan URL

Huruf dan digit ASCII kekal boleh dibaca. Ruang menjadi tanda tambah, manakala tanda baca simpanan dan teks bukan ASCII diwakili oleh bait berkod.

  • hello world menjadi hello+world.
  • tea & cake menjadi tea+%26+cake.
  • email=test@example.com menjadi email%3Dtest%40example.com.
  • 100% ready menjadi 100%25+ready.
  • café menjadi caf%C3%A9 apabila teks sumber menggunakan UTF-8.

Huruf beraksen dan tulisan bukan Latin terlebih dahulu diwakili sebagai bait menggunakan pengekodan aksara, biasanya UTF-8 di web. Setiap bait di luar set yang dibenarkan kemudiannya menerima jujukan lepas peratusnya sendiri. Oleh itu, satu aksara yang kelihatan mungkin menghasilkan beberapa kumpulan yang bermula dengan %.

Nombor tidak memerlukan pengendalian khas. Input kosong tidak menghasilkan kandungan berkod. Saiz input yang sangat panjang boleh meningkat dengan ketara kerana setiap bait berkod menggunakan tiga aksara.

Mengapakah penyahkodan URL gagal atau menghasilkan teks bercelaru?

Penyahkodan biasanya gagal kerana input dikodkan mengikut peraturan yang berbeza, dikodkan lebih daripada sekali atau tidak mewakili teks dalam set aksara yang dijangkakan.

  • Pengendalian ruang yang berbeza. Penyahkod borang menganggap + sebagai ruang, manakala penyahkod peratus yang ketat mungkin membiarkannya sebagai tanda tambah.
  • Pengekodan berganda. Tanda peratus dalam %26 juga boleh menjadi %25, lalu menghasilkan %2526. Satu proses penyahkodan kemudian akan mengembalikan %26, bukannya ampersan asal.
  • Pengekodan aksara yang salah. Bait UTF-8 yang dinyahkodkan sebagai set aksara lain boleh menghasilkan simbol gantian atau huruf yang bercelaru.
  • Data perduaan dan bukannya teks. Bait yang dinyahkodkan mungkin merupakan imej, arkib atau fail lain. Memaparkannya sebagai teks akan menghasilkan aksara bercelaru.
  • Format atau abjad yang salah. Base64 selamat URL, Base64 standard dan pengekodan peratus ialah format yang berbeza. Menggunakan penyahkod URL pada teks Base64 tidak akan mengembalikan nilai yang dimaksudkan.

Pengekodan URL tidak mempunyai aksara pelapik. Jika penyahkod melaporkan pelapik tidak mencukupi, input tersebut mungkin menggunakan Base64 atau format berpelapik lain, bukannya teks berkod peratus.

Soalan lazim

Adakah jujukan peratus berhuruf besar dan kecil dianggap sama?

Ya. Huruf perenambelasan dalam jujukan lepas peratus tidak peka huruf besar atau kecil. Oleh itu, %2F dan %2f kedua-duanya mewakili garis miring. Digit perenambelasan berhuruf besar disyorkan supaya perwakilannya konsisten.

Bolehkah pengekodan URL menukar nama domain antarabangsa?

Tidak. Label domain, seperti nama yang mengandungi é, biasanya memerlukan pemprosesan Nama Domain Berantarabangsa dan format Punycode ASCII yang bermula dengan xn--. Pengekodan peratus digunakan untuk komponen URL lain dan bukan pengganti bagi penukaran tersebut.

Apakah yang berlaku kepada pemisah baris dan tab?

Bait tab dan pemisah baris dikodkan dengan pengekodan peratus kerana bait tersebut tidak boleh muncul secara literal dalam nilai URL biasa. Tab lazimnya diwakili sebagai %09, manakala pengakhiran baris bergantung pada sama ada sumber menggunakan aksara LF atau CRLF.

Mengapakah URL berkod masih gagal apabila ditampal dalam aplikasi?

Aplikasi itu mungkin mengharapkan nilai mentah dan melakukan pengekodannya sendiri, lalu menyebabkan pengekodan berganda. Aplikasi juga mungkin menolak URL kerana had panjang keseluruhan atau kerana aksara simpanan telah dikodkan dalam bahagian struktur alamat. Sebelum mengekod, semak komponen khusus yang diminta oleh aplikasi tersebut.

Adakah data rentetan pertanyaan yang dikodkan selamat untuk dikongsi?

Tidak. Pengekodan peratus URL hanya mengubah bentuk perwakilan data, manakala pelayar dan alat pembangun boleh mendedahkan nilai asal. Sebelum berkongsi pautan, periksa parameter pertanyaannya untuk mencari alamat e-mel, rujukan akaun, token akses dan data lain yang tidak sepatutnya didedahkan.

Alat serupa

Penyahkod URL

Nyahkod input URL kembali kepada rentetan biasa.

4,611
60

Alat popular