Mengapa URL Memerlukan Encoding Karakter Khusus

URL dikirimkan melalui jaringan menggunakan protokol HTTP. Spesifikasi HTTP (dan pendahulunya, standar protokol internet) membatasi URL pada subkumpulan karakter US-ASCII — khususnya karakter dengan nilai byte antara 0x21 dan 0x7E.
Karakter di luar rentang ini — termasuk spasi, karakter beraksen (é, ñ, ü), karakter China/Jepang/Korea, dan banyak simbol — tidak aman di URL tanpa pengkodean.
Mengapa spasi secara khusus? HTTP menggunakan spasi sebagai pembatas antara metode, URL, dan versi protokol di baris permintaan:
GET /search?q=hello world HTTP/1.1Server melihat "halo" sebagai akhir URL dan "dunia" sebagai bagian yang tidak valid dari string versi HTTP. URL-nya rusak.
Solusinya: Pengkodean persen (didefinisikan dalam RFC 3986) mengonversi karakter tidak aman menjadi notasi %XX yang aman dengan XX adalah nilai byte heksadesimal.
Cara Kerja Pengkodean Persen


Setiap karakter dalam UTF-8 berukuran satu hingga empat byte. Pengkodean persen mengonversi setiap byte menjadi % diikuti oleh dua digit heksadesimal:
| Karakter | UTF-8 Byte | Persen-Encoded |
|---|---|---|
| Ruang | 0x20 | %20 |
| # | 0x23 | %23 |
| & | 0x26 | %26 |
| = | 0x3D | %3D |
| / | 0x2F | %2F |
| é | 0xC3 0xB8 0xAD | %E4%B8%AD |
URL yang berisi karakter China seperti https://example.com/搜索 menjadi: https://example.com/%E6%90%9C%E7%B4%A2
Karakter yang Direservasi vs. Karakter yang Tidak Direservasi

Karakter yang tidak direservasi (jangan pernah mengkodekannya): A-Z a-z 0-9 - _ . ~ Ini aman di semua konteks URL dan akan selalu muncul tanpa kode.
Karakter yang dicadangkan (dikodekan saat digunakan sebagai data, bukan sebagai pembatas): : / ? # [ ] @ ! $&' ( )*+ , ; = Karakter ini memiliki arti khusus dalam URL. Enkodekan data tersebut ketika muncul sebagai data literal dalam nilai parameter kueri.
Contoh — URL kueri penelusuran:
https://example.com/search?q=cats&dogs
Ini ambigu — apakah kuerinya "kucing" atau "kucing&anjing"? Dengan pengkodean:
https://example.com/search?q=cats%26dogsSekarang ampersand dikodekan sebagai data, bukan sebagai pemisah parameter kueri.
Pengkodean dan Dekode URL di ToolDolfen

- Buka Enkoder & Dekoder URL (URL Encoder).
- Untuk mengkodekan: Tempelkan URL atau komponen URL yang berisi karakter khusus. Klik Enkode.
- Untuk mendekode: Tempelkan URL atau string yang dikodekan persen untuk melihat dokumen asli yang dapat dibaca manusia.
Alat ini menangani URL lengkap dan komponen URL (nilai parameter kueri individual). Untuk pengkodean URL lengkap, hanya karakter yang tidak dicadangkan yang dikodekan; untuk pengkodean komponen, karakter khusus juga dikodekan.
Panduan Pendamping yang Direkomendasikan
Jelajahi tutorial dan utilitas pelengkap dari cluster topik ini untuk menyempurnakan alur kerja digital Anda: