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 bir adı bir değerden ayırmak için kullanılır. URI genel sözlüğü, bu sorunla başa çıkmak için URL kodlamasını kullanırken HTML formları, bu tür karakterlerin tamamı 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 bir dik çizgi (|) kullanırsanız boruyu %7C olarak kodladığınızdan emin olun. Dizedeki bir virgül %2C olarak kodlanmalıdır.

URL'lerin platformunuza uygun şekilde kod dışına alındığından emin olmak için URL'lerinizi otomatik olarak kodlamak amacıyla platformunuzun normal URL oluşturma kitaplıklarını kullanmanız önerilir.

Geçerli bir URL oluşturma

"Geçerli" bir URL'nin yeterince açık olduğunu düşünebilirsiniz, ancak tam olarak durum böyle değildir. Örneğin, bir tarayıcıda adres çubuğuna girilen bir URL, özel karakterler (ör."上海+中國") içerebilir. Tarayıcının, bu karakterleri iletim öncesinde dahili olarak farklı bir kodlamaya çevirmesi gerekir. Aynı şekilde, UTF-8 girişi oluşturan veya kabul eden tüm kodlar, UTF-8 karakterlerine sahip URL'leri "geçerli" olarak işleyebilir, ancak bu karakterleri bir web sunucusuna göndermeden önce çevirmesi de gerekir. Bu işleme URL kodlaması veya yüzde kodlama adı verilir.

Özel karakterler

Tüm URL'lerin Tekdüzen Kaynak Tanımlayıcısı (URI) spesifikasyonunda belirtilen söz dizimine uygun olması gerektiğinden özel karakterleri çevirmemiz gerekir. Bu, URL'lerin yalnızca ASCII karakterlerden oluşan özel bir alt küme içermesi gerektiği anlamına gelir. Tanıdık alfanümerik simgeler ve URL'lerde kontrol karakteri olarak kullanılacak bazı ayrılmış karakterler bu tabloda özetlenmiştir:

Geçerli URL Karakterlerinin Özeti
AyarlakarakterURL kullanımı
Alfanümerik a b c d l f n Metin dizeleri, şema kullanımı (http), bağlantı noktası (8080) vb.
Ayrılmamış - _ . ~ Metin dizeleri
Rezervasyon yapıldı ! * ' ( ) ; : @ & = + $ , / ? % # [ ] Kontrol karakterleri ve/veya Metin Dizeleri

Geçerli bir URL oluştururken, yalnızca Geçerli URL Karakterlerinin Özeti tablosunda gösterilen karakterleri içerdiğinden emin olun. Bu karakter grubunu kullanmak için URL oluşturmak genellikle bir sorunu eksik ve biri yedek olmak üzere iki soruna neden olur:

  • Tutmak istediğiniz karakterler yukarıdaki kümenin dışında bulunuyor. Örneğin, 上海+中國 gibi yabancı dillerdeki karakterlerin yukarıdaki karakterler kullanılarak kodlanması gerekir. Genel olarak, URL'lerde izin verilmeyen boşluklar da genellikle '+' karakteriyle temsil edilir.
  • Yukarıdaki karakterler ayrılmış karakterler olarak ayarlanmıştır ancak bunların gerçek anlamda kullanılması gerekir. Örneğin, ? içinde sorgu dizesinin başlangıcını belirtmek için kullanılır. "? ve Gizemler" dizesini kullanmak isterseniz '?' karakterini kodlamanız gerekir.

URL olarak kodlanacak tüm karakterler, bir '%' karakteri ve UTF-8 karakterlerine karşılık gelen iki karakterlik bir onaltılık değer kullanılarak kodlanır. Örneğin, UTF-8'deki 上海+中國 öğesi %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 zor olabiliyor. Örneğin, bir kullanıcı "5.ve Cadde No:" şeklinde bir adres girebilir. Genel olarak URL'nizi kendi bölümlerinden oluşturmanız gerekir. Bunu yaparken herhangi bir kullanıcı girişini gerçek karakterler olarak değerlendirmelisiniz.

Ayrıca URL'ler, tüm Google Haritalar Platformu web hizmetleri ve statik web API'leri için 8192 karakterle sınırlıdır. Çoğu hizmette, bu karakter sınırına nadiren ulaşılır. Ancak, belirli hizmetlerin uzun URL'lerle sonuçlanabilecek birkaç parametresi olduğunu unutmayın.