Nasıl çalışır
URL kodlaması (percent-encoding), bir adreste doğrudan görünemeyen karakterleri, bayt değerini taşıyan %XX dizileriyle değiştirir. Örneğin boşluk %20 olur.
"Bileşen" kapsamı ayrılmış karakterleri de (= & / ? #) çıkışlar: bir parametrenin değeri için kullanın. "Tam URL" adres yapısını korur: bütün bir URL için kullanın.
HTML formlarında boşluk + olarak kodlanır (application/x-www-form-urlencoded); diğer tüm durumlarda RFC 3986 standardına göre %20 kullanılır.
Örnekler
hola mundo & máshola%20mundo%20%26%20m%C3%A1s"&" karakteri, bir parametre ayırıcısıyla karışmaması için çıkışlanır (%26); "á" ise UTF-8 ile kodlanır (%C3%A1).a=1&b=2a%3D1%26b%3D2https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202"Tam URL" modunda ://, / ve ? korunur; yalnızca adresi bozacak şeyler çıkışlanır.Kullanım senaryoları
- Bir URL'yi elle oluştururken sorgu parametrelerini güvenli biçimde hazırlamak.
- &, =, boşluk veya aksan içeren değerleri bir GET isteğinde göndermeden önce kodlamak.
- Her parametrenin hangi değerleri taşıdığını okumak için bir URL'nin kodunu çözmek.
- Form gönderimi için application/x-www-form-urlencoded gövdeleri hazırlamak.
Sık sorulan sorular
"Bileşen" ile "Tam URL" arasındaki fark nedir?
"Bileşen" (encodeURIComponent) ayrıca =, &, /, ?, # karakterlerini çıkışlar — tekil bir değer içindir. "Tam URL" (encodeURI) bu yapısal karakterleri korur — bütün bir URL içindir.
Boşluk için ne zaman + ne zaman %20 kullanılır?
+ yalnızca form gövdesi için geçerlidir (application/x-www-form-urlencoded). URL'nin geri kalanında boşluğun standardı %20'dir.
"á" neden tek bir %XX değil de %C3%A1 olur?
Çünkü UTF-8 ile kodlanır: ASCII olmayan karakterler birkaç bayt kaplar ve her bayt kendi %XX dizisiyle temsil edilir.
Bir URL'yi kodlamak onu güvenli yapar mı?
Hayır. Onu yalnızca söz dizimi düzeyinde geçerli kılar. Bu bir şifreleme değildir ve içeriği hiçbir şekilde korumaz.