URL'ler Neden Kodlanmaya İhtiyaç Duyar?
Bir web adresi yalnızca sınırlı bir karakter kümesini güvenle taşıyabilir. RFC 3986 standardı, adres içinde doğrudan kullanılabilecek harfleri, rakamları ve birkaç işareti ayrılmamış (unreserved) karakterler olarak tanımlar. Bunun yanında /, ?, #, &, = gibi işaretler ayrılmış (reserved) karakterlerdir çünkü adresin yapısında özel görevleri vardır. Boşluk, Türkçe harfler veya % işareti gibi kümenin dışında kalan her şey ise doğrudan yazıldığında adresi bozar.
URL Kodlayıcı tam da bu noktada devreye girer. Sorunlu karakterleri yüzde kodlaması (percent-encoding) denilen bir biçime çevirir. Her sorunlu bayt, yüzde işareti ve iki basamaklı onaltılık koduyla temsil edilir. Örneğin boşluk %20, ç harfi ise UTF-8 karşılığıyla %C3%A7 olur.
Kodlama yapılmadığında ne olur? Bir arama kutusuna "kırmızı ayakkabı" yazıp bunu bağlantıya eklediğinizi düşünün. Kodlanmamış boşluk, tarayıcının veya sunucunun adresi yanlış yorumlamasına yol açar. Bağlantı ya kırılır ya da parametrenin bir kısmı kaybolur. Aynı sorun, kampanya bağlantılarına eklenen açıklama metinlerinde veya kullanıcı adlarında da görülür.
Kodlama şu durumlarda kritik önem taşır:
- Arama sorgularını bağlantıya gömerken
- UTM etiketleriyle pazarlama bağlantıları oluştururken
- API isteklerine parametre eklerken
- Türkçe karakter içeren başlıkları adrese taşırken
Özetle kodlama, metnin görünüşünü değil, aktarım sırasında güvenli kalmasını sağlar. Adresi alan tarafta çözme işlemi yapıldığında metin aslına birebir döner. Ters yönde çalışan işlem için URL çözme aracı kullanılabilir.