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 biçimlerinde = karakteri, bir adı 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 tüm karakterler için yüzde kodlaması uygulamak yerine bazı ek değişiklikler yapar.

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

URL'lerin platformunuz için uygun şekilde kod dışına alındığından emin olmak amacıyla 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 çok bariz olduğunu düşünebilirsiniz, ancak bu doğru değildir. Örneğin, tarayıcıdaki bir 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şi oluşturan veya kabul eden tüm kodlar, UTF-8 karakterlerinin bulunduğu URL'leri "geçerli" olarak değerlendirebilir. Ancak bu karakterleri web sunucusuna göndermeden önce çevirmeleri gerekir. Bu işleme URL kodlaması veya yüzde kodlaması 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. Yani, URL'ler yalnızca ASCII karakterlerin özel bir alt kümesini içermelidir: Bildiğiniz alfanümerik simgeler ve URL'lerde kontrol karakterleri olarak kullanılacak bazı ayrılmış karakterler. Bu tabloda şu karakterler özetlenmektedir:

Geçerli URL Karakterlerinin Özeti
AyarlakarakterURL kullanımı
Alfanümerik CANNOT TRANSLATE 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 olmalısınız. Bir URL'nin bu karakter kümesini kullanacak şekilde biçimlendirilmesi, genellikle iki soruna neden olur: Biri eksik, diğeri ikame:

  • Ele almak istediğiniz karakterler yukarıdaki grubun dışında bulunur. Örneğin, 上海+中國 gibi yabancı dillerdeki karakterlerin yukarıdaki karakterler kullanılarak kodlanması gerekir. Popüler kurallara göre boşluklar (URL'lerde izin verilmez) genellikle '+' karakteriyle de gösterilir.
  • Yukarıdaki karakterler ayrılmış karakterler olarak ayarlanır, ancak kelimenin tam olarak kullanılması gerekir. Örneğin, ?, sorgu dizesinin başlangıcını belirtmek için URL'lerde kullanılır. "? ve Mysterions" dizesini kullanmak isterseniz '?' karakterini kodlamanız gerekir.

URL olarak kodlanmış tüm karakterler, bir '%' karakteri ve UTF-8 karakterlerine karşılık gelen iki karakterli bir onaltılık değer kullanılarak kodlanır. Örneğin, UTF-8'deki 上海+中國, %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ı "5. Ana Cadde" şeklinde bir adres girebilir. Genel olarak, tüm kullanıcı girişlerini tam karakter olarak kabul ederek URL'nizi bölümlerinden oluşturmanız gerekir.

Buna ek olarak URL'ler, tüm Google Haritalar Platformu web hizmetleri ve statik web API'leri için 8.192 karakterle sınırlıdır. Çoğu hizmette bu karakter sınırına nadiren ulaşılır. Ancak belirli hizmetlerin uzun URL'lere neden olabilecek birkaç parametresi olduğunu unutmayın.