Pengodean URL: jaga nilai tanpa merusak tautan
Tautan bisa bekerja sampai ditambah nama dengan &, + atau spasi. Nama itu belum tentu salah; beberapa karakter juga menjalankan fungsi struktur dalam URL.
Nilai bukan seluruh URL
Kodekan nilai parameter agar & tidak memulai parameter lain dan # tidak memulai fragmen. Mengodekan alamat lengkap justru perlu mempertahankan pemisah strukturnya.
Pilih menurut masukan: alamat utuh, komponen, atau nilai formulir. Hasil tepat pada satu konteks belum tentu cocok untuk konteks lain.
Referensi: WHATWG URL Standard — Percent encoding and form encoding
Makna + bergantung konteks
Dalam formulir, + berarti spasi dan %2B berarti tanda tambah asli. Pada komponen, spasi biasanya %20 dan + tidak otomatis dianggap spasi.
Jangan mengganti semua + sebelum tahu format sumber. Pisahkan nilai asli pengguna dari representasi yang dipakai untuk membawanya.
Referensi: WHATWG URL Standard — Percent encoding and form encoding
Dekode adalah langkah tertentu, bukan lingkar perbaikan
Mendekode 2 kali bisa mengubah makna. Ketahui jumlah lapisan yang dimaksud sistem pembuat, bukan mengulang sampai teks tampak familier.
Alat hanya mengubah representasi teks; tidak mengunjungi atau memeriksa tujuan. Tautan terbaca bukan bukti aman, dan pengodean informasi sensitif tidak menyembunyikannya.
Contoh: nilai dengan +, spasi, dan &
A+B & C menjadi A%2BB%20%26%20C sebagai komponen. Dalam formulir menjadi A%2BB+%26+C. Masing-masing kembali ke nilai asli dengan aturan dekode yang sesuai.
%252F menjadi %2F setelah satu dekode dan / setelah yang kedua. Itu dapat mengubah jalur atau nilai; pengulangan bukan otomatis pembersihan aman.