URL kodlaması
Kısa tanım
Bir web adresinde özel anlamı olan ya da izin verilmeyen karakterlerin yüzde işareti ve onaltılık bayt değeriyle (%20 gibi) yazılmasını sağlayan kodlama yöntemidir.
Diğer adları: Yüzde kodlaması, Percent-encoding, URL encode
Tarayıcının adres çubuğuna kopyaladığın bir bağlantıda "%C3%A7" ya da "%20" gibi dizilerle karşılaştıysan URL kodlamasını görmüşsün demektir. Web adresleri yalnızca sınırlı bir karakter kümesini doğrudan taşıyabilir; boşluk, Türkçe harfler ve özel anlamı olan işaretler kodlanarak yazılır.
Nasıl çalışır?
Kodlanması gereken her karakter önce UTF-8 ile baytlara çevrilir, sonra her bayt yüzde işareti ve iki onaltılık rakamla yazılır. Harfler, rakamlar ve "- _ . ~" işaretleri olduğu gibi kalır. Örnekler:
- Boşluk → %20 (form verilerinde + olarak da görülebilir)
- ç → %C3%A7, ş → %C5%9F, ı → %C4%B1, ğ → %C4%9F
- & → %26, = → %3D, ? → %3F, / → %2F
Örnek: "yüzde hesaplama" araması bir sorgu parametresinde q=y%C3%BCzde%20hesaplama olarak gönderilir. Kodlama ve çözme işlemini URL encode decode aracıyla yapabilir, bir adresi protokol, alan adı, yol ve parametrelerine URL ayrıştırıcıyla bölebilirsin.
Neden önemli?
Parametre değerlerinin içindeki & ya da = işaretleri kodlanmazsa sunucu bunları ayraç sanar ve veriyi yanlış böler. Kampanya bağlantılarında UTM etiketleri oluştururken bu hata sık yapılır; UTM link oluşturucu değerleri otomatik kodlar. Türkçe karakter başına 2 bayt, yani 6 karakterlik kod oluştuğu için kodlanmış adresler uzar; bir metnin UTF-8 bayt uzunluğunu UTF-8 bayt uzunluğu hesaplamasıyla görebilirsin.
SEO açısından adres yollarında Türkçe karakter yerine Latin karşılıklarını kullanmak (ç→c, ş→s) hem paylaşımda hem okunabilirlikte daha temiz sonuç verir. Bir değeri iki kez kodlamak (%2520 gibi) yaygın bir hatadır.