Panduan URL Encoding: Persen-Encoding Standar RFC 3986
URL Encoding (atau Percent-Encoding) adalah mekanisme untuk mengodekan informasi di dalam Uniform Resource Identifier (URI) agar tidak disalahartikan oleh server atau protokol internet.
Perbedaan encodeURI vs encodeURIComponent
encodeURI digunakan untuk meng-encode URL utuh karena membiarkan karakter pemisah protokol seperti :, /, ?, dan # tetap apa adanya. Sebaliknya, encodeURIComponent meng-encode semua karakter khusus termasuk pemisah tersebut, sehingga wajib digunakan saat menyisipkan satu nilai parameter ke dalam query string.
Kenapa Spasi Menjadi %20 atau +?
RFC 3986, representasi spasi adalah %20. Tanda + hanya merupakan konvensi lama pengiriman formulir HTML tipe application/x-www-form-urlencoded dan sering memicu bug jika digunakan sembarangan di luar pengiriman form web.