Penjelasan Karakter Reserved pada URL
Panduan Encoding URL
Spesifikasi URL (RFC 3986) membagi karakter menjadi reserved dan unreserved. Memahami pembagian ini membuat jelas kapan Anda harus meng-encode dan kapan tidak perlu.
Karakter unreserved (aman apa adanya)
Huruf, angka, dan empat simbol - _ . ~ dapat muncul di mana saja tanpa encoding. Meng-encode-nya tidak akan mengubah maknanya, jadi biasanya dibiarkan apa adanya.
Karakter reserved (makna struktural)
Karakter reserved membagi sebuah URL menjadi beberapa bagian. Untuk menggunakannya sebagai data literal, Anda harus meng-encode-nya.
:/?#[]@— memisahkan bagian utama (scheme, path, query, fragment, dll.)!$&'()*+,;=— sub-pemisah, khususnya untuk key dan value pada query
Batas antara encodeURI dan encodeURIComponent
encodeURI mempertahankan karakter reserved tersebut, sehingga tidak merusak struktur URL yang sudah lengkap. encodeURIComponent meng-encode semuanya, yang Anda inginkan saat menyisipkan sebuah fragmen seperti satu nilai parameter.
Gunakan encodeURIComponent untuk satu nilai dan encodeURI untuk satu alamat lengkap — mengingat aturan itu saja sudah menghindari sebagian besar kesalahan.