URL Kodlama

Bazı karakterler bir URL'nin parçası olamaz (örneğin, boşluk) ve diğer bazı karakterler URL'de özel anlamlara sahiptir. HTML formlarında, bir adı değerden ayırmak için = karakteri kullanılır. URI genel söz dizimi, bu sorunu çözmek için URL kodlamasını kullanırken HTML formları bu tür tüm karakterler 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ıyorsanız dikey çizgiyi %7C olarak kodladığınızdan emin olun. 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 düzgün şekilde çıkış yapılır.

Geçerli bir URL oluşturma

"Geçerli" bir URL'nin kendiliğinden aşikar olduğunu 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. Tarayıcının bu karakterleri iletilmeden önce dahili olarak farklı bir kodlamaya çevirmesi gerekir. Aynı şekilde, UTF-8 girişini oluşturan veya kabul eden tüm kodlar UTF-8 karakterli URL'leri "geçerli" olarak değerlendirebilir ancak bu karakterleri bir web sunucusuna gönderilmeden önce çevirmesi de gerekir. Bu işleme URL kodlama veya yüzde kodlama denir.

Özel karakterler

Tüm URL'lerin Tek Tip Kaynak Tanımlayıcısı (URI) spesifikasyonunda belirtilen söz dizimine uyması gerektiğinden özel karakterleri çevirmemiz gerekir. Aslında bu, URL'lerin yalnızca ASCII karakterlerinin ö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
AyarlakarakterURL kullanımı
Alfanümerik n Metin dizeleri, şema kullanımı (http), bağlantı noktası (8080) vb.
Ayrılmamış - _ . ~ Metin dizeleri
Rezervasyon yapıldı ! * ' ( ) ; : @ & = + TL , / ? # [ ] yüzdesi Karakterleri ve/veya Metin Dizelerini kontrol etme

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

  • İşlemek istediğiniz karakterler yukarıdaki kümenin dışında var. Örneğin, 上海+中國 gibi yabancı dillerdeki karakterler yukarıdaki karakterler kullanılarak kodlanmalıdır. Yaygın bir kural olarak, boşluklar (URL'lerde kullanılmasına izin verilmez) genellikle artı '+' karakteri kullanılarak da gösterilir.
  • Yukarıdaki karakterler, ayrılmış karakterler olarak ayarlanmış olsa da birbirlerinin yerine kullanılmaları gerekir. Örneğin, ? parametresi URL'lerde sorgu dizesinin başlangıcını belirtmek için kullanılır. "? ve Gizemler" dizesini kullanmak isterseniz '?' karakterini kodlamanız gerekir.

URL 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.

Kodlama gerektiren yaygın karakterler

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

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

Kullanıcı girişinden aldığınız bir URL'yi dönüştürmek bazen zordur. Örneğin, bir kullanıcı "İstanbul Büyükdere Caddesi" olarak bir adres girebilir. Genel olarak, URL'nizi parçalarından oluşturmalısınız ve tüm kullanıcı girişlerini değişmez karakter olarak ele alın.

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