URL Kodlama

Bazı karakterler bir URL'nin parçası olamaz (örneğin, boşluk) ve diğer bazı karakterlerin URL'de özel bir anlamı vardır. HTML formlarında, = karakteri adı bir değerden ayırmak için kullanılır. URI genel söz dizimi, bu sorunu çözmek için URL kodlamasını kullanırken HTML formları, bu tür karakterlerin tümü için yüzde kodlaması uygulamak yerine bazı ek değişiklikler yapar.

Örneğin, bir dizedeki boşluklar %20 ile kodlanır veya artı işareti (+) ile değiştirilir. Ayırıcı olarak dikey çizgi karakteri (|) kullanırsanız dikey çizgiyi %7C olarak kodladığınızdan emin olun. Bir dizedeki virgül %2C olarak kodlanmalıdır.

URL'lerinizi otomatik olarak kodlamak için platformunuzun normal URL oluşturma kitaplıklarını kullanmanız önerilir. Böylece, URL'lerden platformunuzda doğru şekilde çıkış karakterleri kullanılabilir.

Geçerli bir URL oluşturma

"Geçerli" bir URL'nin kolayca anlaşılabileceğini düşünebilirsiniz, ancak bu doğru değildir. Örneğin, bir tarayıcıdaki adres çubuğuna girilen bir URL, özel karakterler (ör."上海+中國") içerebilir. İletim öncesinde tarayıcının bu karakterleri dahili olarak farklı bir kodlamaya çevirmesi gerekir. Aynı jetonla, UTF-8 girişi oluşturan veya kabul eden tüm kodlar UTF-8 karakterleri içeren URL'leri "geçerli" olarak değerlendirebilir. Ancak bu karakterleri web sunucusuna gönderilmeden önce de çevirmeleri gerekir. Bu sürece URL kodlaması veya yüzde kodlaması denir.

Özel karakterler

Tüm URL'lerin Birörnek Kaynak Tanımlayıcısı (URI) spesifikasyonunda belirtilen söz dizimine uyması gerektiği için özel karakterleri çevirmemiz gerekir. Gerçekte bu, URL'lerin yalnızca ASCII karakterlerin yalnızca özel bir alt kümesini içermesi gerektiği anlamına gelir: bilindik alfasayısal simgeler ve URL'lerde kontrol karakterleri olarak kullanılmak üzere ayrılmış bazı karakterler. Bu tabloda şu karakterler özetlenmektedir:

Geçerli URL Karakterlerinin Özeti
AyarlakarakterlerURL kullanımı
Alfanümerik Metin dizeleri, şema kullanımı (http), bağlantı noktası (8080) vb.
Ayrılmamış - _ . ~ Metin dizeleri
Rezervasyon yapıldı ! * ' ( ) ; : @ & = + TL , / ? # [ ] yüzdesi Kontrol karakterleri ve/veya Metin Dizeleri

Geçerli bir URL oluştururken, bu URL'nin yalnızca Geçerli URL Karakterleri Özeti tablosunda gösterilen karakterleri içerdiğinden emin olmanız gerekir. Bir URL'nin bu karakter grubunu kullanacak şekilde oluşturulması, genellikle biri eksiklik, diğeri yer değiştirme olmak üzere iki soruna yol açar:

  • İşlemek istediğiniz karakterler yukarıdaki kümenin dışında mevcut. Örneğin, 上海+中國 gibi yabancı dillerdeki karakterlerin yukarıdaki karakterler kullanılarak kodlanması gerekir. Popüler bir kural olarak, boşluklar (URL'lerin içinde kullanılmasına izin verilmez) de çoğu zaman artı '+' karakteri kullanılarak temsil edilir.
  • Karakterler, yukarıdaki ayrılmış karakterler olarak mevcuttur ancak bire bir kullanılmaları gerekir. Örneğin, ?, sorgu dizesinin başlangıcını belirtmek için URL'lerin içinde kullanılır; "? ve Gizemler" dizesini kullanmak isterseniz '?' karakterini kodlamanız gerekir.

URL olarak kodlanacak tüm karakterler, bir '%' karakteri ve UTF-8 karakterine karşılık gelen iki karakterlik onaltılık değer kullanılarak kodlanır. Örneğin, UTF-8'de 上海+中國, %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B olarak URL olarak kodlanır. ? and the Mysterians dizesi, %3F+and+the+Mysterians veya %3F%20and%20the%20Mysterians olarak URL olarak kodlanır.

Yaygın olarak kullanılan ve kodlama gerektiren karakterler

Kodlanması gereken bazı yaygın karakterler şunlardır:

Güvenli olmayan karakter Kodlanmış değer
Alan %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

Kullanıcı girişinden aldığınız bir URL'yi dönüştürmek bazen zor bir iş olabilir. Örneğin, bir kullanıcı "5th&Main St" olarak bir adres girebilir. Genel olarak, URL'nizi parçalarından oluşturmanız ve tüm kullanıcı girişlerini gerçek karakterler olarak ele almanız gerekir.

Ayrıca, tüm Google Haritalar Platformu web hizmetleri ve statik web API'leri için URL'ler 16.384 karakterle sınırlandırılmıştır. Çoğu hizmette bu karakter sınırına nadiren yaklaşılır. Ancak belirli hizmetlerde, uzun URL'lere neden olabilecek birkaç parametre bulunduğunu unutmayın.